技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> MySQL --> NoSQL数据库:MongoDB初探

NoSQL数据库:MongoDB初探

浏览:2547次  出处信息
ign=top width=123>3816 19083 5000000 5

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轮,估计他的威力应该在数据量非常大的环境下才能体现出来吧,以上数据仅供参考,现在只是简单的进行了测试,接下来会对源码进行一下研究,欢迎和感兴趣的同学多多交流!

建议继续学习:

  1. hbase运维    (阅读:13669)
  2. 我对技术方向的一些反思    (阅读:9851)
  3. Key-Value小数据库tmdb发布:原理和实现    (阅读:7304)
  4. SQL vs NoSQL:数据库并发写入性能比拼    (阅读:6610)
  5. 让Redis使用TCMalloc,实现高性能NOSql服务器    (阅读:6088)
  6. Using MySQL as a NoSQL    (阅读:5653)
  7. SQL到NOSQL的思维转变    (阅读:5634)
  8. MongoDB与内存    (阅读:5332)
  9. Nodejs和MongoDB初体验    (阅读:5018)
  10. nosql数据库选型    (阅读:4803)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1