mongoDB单表数据量多大需要考虑分片?
单表多大做分片并没有硬性限制。
理论上讲,你的硬件越好,可以存储的数据量就越大,所以标准答案是:看你的硬件决定。
标准就是,内存能够容纳“热数据”。
热数据指的是你需要经常用到的数据和索引,最坏的情况,也应该容纳经常使用的索引。
内存容量不仅会影响到读,还会影响到写。
因为写的时候也会需要修改索引,如果此时索引不在内存中,同样会造成比较严重的影响,但是这也并不代表数据可以无限大下去。
在实际使用中我们也发现,数据量大之后有些运维动作会很不方便,最典型的有:
- 重新同步从节点
- 从备份恢复数据
所以为了日常运维方便,建议数据量维持在一定量之内。这个量我们的经验值是每个节点2TB。注意是节点,不是表。再注意这里说的2TB是数据容量,不是存储容量。由于压缩的存在,存储容量会比数据容量小得多。数据容量可以在各个库上执行db.stats().dataSize获得。
参考
Shell脚本获取MongoDB数据量大小
https://www.yangxinghui.com/1450.html
MongoDB查看数据库和表大小
http://www.zhouqishan.cn/2015/07/29/mongodb%E6%9F%A5%E7%9C%8B%E6%95%B0%E6%8D%AE%E5%BA%93%E5%92%8C%E8%A1%A8%E5%A4%A7%E5%B0%8F/
Mongo库表占用空间统计
https://www.cnblogs.com/mengrennwpu/p/14722867.html
MongoDB-查看数据库和集合大小
https://cloud.tencent.com/developer/article/1876450
mongo 查看某个库下面每个集合的大小
https://blog.csdn.net/qq_36470475/article/details/104928526
网友评论