Siva Dasari Asked: 2016-11-24 13:56:14 +0800 CST2016-11-24 13:56:14 +0800 CST 2016-11-24 13:56:14 +0800 CST MongoDB - 关于选择随机分布的分片键的说明 772 在我的一篇读物中,我注意到以下关于选择随机分布shard keys但无法理解为什么这样说的陈述。有人能给我提供详细的解释吗? “随机分布的唯一缺点shard keys是MongoDB随机访问超出 RAM 大小的数据时效率不高。” 谢谢你。 mongodb sharding 1 个回答 Voted Best Answer Adam Harrison 2016-11-24T15:09:48+08:002016-11-24T15:09:48+08:00 虽然在没有完整上下文的情况下很难肯定地说,但我假设它指的是需要将工作集保存在内存中。 随机分布的分片键会将工作负载分布在整个索引中,这意味着整个索引需要适合内存才能有效地处理工作负载。一旦分片上该索引的大小大于 RAM,性能就会下降,因为分片键上的索引需要在内存中进出页面错误数据。 相反,非随机分片键可能有一个处理大部分工作集的“热”子集。例如,考虑一个网站,其中只有用户经常访问较新的“帖子”,而很少访问较旧的“帖子”。虽然“帖子”上的索引可能比可用内存大,但可能只有索引的子集需要适合内存,从而减少内存压力和页面错误的可能性。
虽然在没有完整上下文的情况下很难肯定地说,但我假设它指的是需要将工作集保存在内存中。
随机分布的分片键会将工作负载分布在整个索引中,这意味着整个索引需要适合内存才能有效地处理工作负载。一旦分片上该索引的大小大于 RAM,性能就会下降,因为分片键上的索引需要在内存中进出页面错误数据。
相反,非随机分片键可能有一个处理大部分工作集的“热”子集。例如,考虑一个网站,其中只有用户经常访问较新的“帖子”,而很少访问较旧的“帖子”。虽然“帖子”上的索引可能比可用内存大,但可能只有索引的子集需要适合内存,从而减少内存压力和页面错误的可能性。