• 月迷津渡
    2020-01-24
    这里有个问题没理解,工作集大小是热数据加索引数据,隐含的意思就是索引数据和热数据都是全量在内存里的?如果是的话,索引数据是mongodb自己维护在内存的?热数据是自己应用程序维护在内存里的?

    作者回复: mongodb使用LRU算法对缓存数据进行管理。热数据和索引数据,他们本身的特性就决定了会经常被访问。你只要提供足够大小的缓存空间,他们自然就会被mongo留在缓存里,因为被经常访问缘故。

    应用程序不用自己维护缓存数据。

    
     1
  • t86
    2020-01-19
    老师,用userid加time做片键,在查询时会有需要等待多个分片的结果一起返回的问题吗?

    作者回复: 如果你的查询条件里有userid,就不会用到多个分片。
    如果你的查询条件里没有userid,就会发散到多个片

    
    
  • t86
    2020-01-18
    老师,分片除了基于数据量是不是也要考虑集合内部的数据数量大小考虑?之前好像您有说上亿条还是多少以后读写性能也会显著变差,这种情况是不是也要考虑分片?

    作者回复: 是的,分片不仅仅是数据量(我想你指的是行数),也和存储/IOPS有关系,还有内存/客户端连接数都有关系。 在课程内这一点我有明确说明。

    
    
  • Jason
    2020-01-11
    老师,请教一个问题,数据大小与机器配置有没有经验换算方式,比如1TB数据,1主2从复制集,单台服务器需要多大的配置,CPU、内存,还是需要模拟压测

    作者回复: 官方没有标准算法 - 根据workload的不同,硬件配置可以差别很大。你可以参考MongoDB Atlas上面有个机器大小可以支持的Connections,所以从应用要支持的连接数,可以做一个反推。但是并不考虑你的数据量,所以只是个概括估计。

    https://docs.atlas.mongodb.com/connection-limits/index.html

    
    
我们在线,来聊聊吧