NoSQL数据库:MongoDB初探
浏览:2561次 出处信息
Select
以”_id”字段为key,返回整条记录
a) 客户端:单机多线程
Per-thread rows | run time | Per-thread select | Total-select | Total rows | threads |
1000000 | 198 | 5050 | 5050 | 1000000 | 1 |
1000000 | 264 | 3787 | 37878 | 10000000 | 10 |
1000000 | 436 | 2293 | 114678 | 50000000 | 50 |
1000000 | 754 | 1326 | 132625 | 100000000 | 100 |
1000000 | 1526 | 655 | 131061 | 200000000 | 200 |
b) 客户端:分布式多线程
程序部署在39台机器上
Per-thread rows | run time | Per-thread select | Total-select | Total rows | threads |
1000000 | 216 | 4629 | 4629*39=180531 | 1000000*39 | 1 |
1000000 | 1375 | 729 | 7293*39=284427 | 10000000*39 | 10 |
500000 | 1469 | 340 | 6807*39=265473 | 10000000*39 | 20 |
200000 | 1561 | 128 | 6406*39=249834 | 10000000*39 | 50 |
3) Sharding 模式
Insert
Per-thread rows | run time | Per-thread insert | Total-insert | Total rows | threads |
1000000 | 58 | 17241 | 17241 | 1000000 | 1 |
3000000 | 180 | 16666 | 16666 | 3000000 | 1 |
5000000 | 373 | 13404 | 13404 | 5000000 | 1 |
2000000 | 234 | 8547 | 17094 | 4000000 | 2 |
2000000 | 447 | 4474 | 22371 | 10000000 | 5 |
Update
Per-thread rows | run time | Per-thread update | Total-update | Total rows | threads |
1000000 | 38 | 26315 | 26315 | 1000000 | 1 |
3000000 | 115 | 26086 | 26086 | 3000000 | 1 |
1000000 | 64 | 15625 | 46875 | 3000000 | 3 |
1000000 | 93 | 10752 | 53763 | 5000000 | 5 |
Select
以”_id”字段为key,返回整条记录
a) 客户端:单机多线程
Per-thread rows | run time | Per-thread select | Total-select | Total rows | threads |
1000000 | 277 | 3610 | 3610 | 1000000 | 1 |
1000000 | 456 | 2192 | 21929 | 10000000 | 10 |
1000000 | 1158 | 863 | 43177 | 50000000 | 50 |
1000000 | 2299 | 434 | 43497 | 100000000 | 100 |
b) 客户端:分布式多线程
程序部署在39台机器上
Per-thread rows | run time | Per-thread select | Total-select | Total rows | threads |
1000000 | 659 | 1517 | 1517*39= 59163 | 1000000*39 | 1 |
1000000 | 8540 | 117 | 1170*39=45630 | 10000000*39 | 10 |
小结:
Mongodb在M-S和Repl-Set模式下查询效率还是不错的,区别在于Repl-Set模式如果有primary节点挂掉,系统自己会选举出另一个primary节点,不会影响后续的使用,原来的主节点恢复后自动成为secondary节点,而M-S模式一旦master 节点挂掉需要手工将别的slaves 节点修改成master,另外Repl-Set模式最多只能有7个节点.
由于sharding模式查询速度下降明显,耗时太长,所以只测试了2轮,估计他的威力应该在数据量非常大的环境下才能体现出来吧,以上数据仅供参考,现在只是简单的进行了测试,接下来会对源码进行一下研究,欢迎和感兴趣的同学多多交流!
建议继续学习:
- hbase运维 (阅读:13682)
- 我对技术方向的一些反思 (阅读:9879)
- Key-Value小数据库tmdb发布:原理和实现 (阅读:7319)
- SQL vs NoSQL:数据库并发写入性能比拼 (阅读:6637)
- 让Redis使用TCMalloc,实现高性能NOSql服务器 (阅读:6106)
- Using MySQL as a NoSQL (阅读:5676)
- SQL到NOSQL的思维转变 (阅读:5651)
- MongoDB与内存 (阅读:5355)
- Nodejs和MongoDB初体验 (阅读:5024)
- nosql数据库选型 (阅读:4827)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:让MySQL搜索、排序时区分大小写
后一篇:mysql汉字16进制编码转换方法 >>
文章信息
- 作者:天风 来源: 搜索技术博客-淘宝
- 标签: MongoDB NoSQL
- 发布时间:2010-12-23 22:32:45