下次更新时间为:2020 年 1 月 15 日
课件和 Demo 地址
https://github.com/geektime-geekbang/geektime-mongodb-course
作者回复: mongodb使用LRU算法对缓存数据进行管理。热数据和索引数据,他们本身的特性就决定了会经常被访问。你只要提供足够大小的缓存空间,他们自然就会被mongo留在缓存里,因为被经常访问缘故。
应用程序不用自己维护缓存数据。
作者回复: 如果你的查询条件里有userid,就不会用到多个分片。
如果你的查询条件里没有userid,就会发散到多个片
作者回复: 是的,分片不仅仅是数据量(我想你指的是行数),也和存储/IOPS有关系,还有内存/客户端连接数都有关系。 在课程内这一点我有明确说明。
作者回复: 官方没有标准算法 - 根据workload的不同,硬件配置可以差别很大。你可以参考MongoDB Atlas上面有个机器大小可以支持的Connections,所以从应用要支持的连接数,可以做一个反推。但是并不考虑你的数据量,所以只是个概括估计。
https://docs.atlas.mongodb.com/connection-limits/index.html