IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

NoSQL数据库:MongoDB初探

搜索技术博客-淘宝 2010-12-23 22:32:45 累计浏览 3,450 次
本机暂存
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. 使用deepseek进行Oracle恢复,引起重大故障 (2026-06-22 10:56:00)
  2. 接手一个只差临门一脚的数据库恢复 (2026-06-18 00:13:09)
  3. 我做了一个 AI 版的 StarRocks 升级风险扫描工具,直接帮我定位到一个风险 (2026-06-15 01:00:00)

查看更多 数据库 文章 →

建议继续学习

  1. HFile存储格式 (累计阅读 15,976)
  2. hbase运维 (累计阅读 14,924)
  3. 什么是全栈工程师? (累计阅读 14,038)
  4. hbase介绍 (累计阅读 12,367)
  5. HBase技术介绍 (累计阅读 8,076)
  6. SQL vs NoSQL:数据库并发写入性能比拼 (累计阅读 8,004)
  7. Redis作者谈Redis应用场景 (累计阅读 7,671)
  8. HBase随机写以及随机读性能测试 (累计阅读 7,548)
  9. Web应用的缓存设计模式 (累计阅读 7,444)
  10. Using MySQL as a NoSQL (累计阅读 7,111)