Massimo Lavermicocca Asked: 2019-03-21 10:55:11 +0800 CST2019-03-21 10:55:11 +0800 CST 2019-03-21 10:55:11 +0800 CST “单调改变分片键”是什么意思? 772 我正在撰写我的第一篇关于 MongoDB 和更具体的 MongoDB 分片集群的文章。在文档中,我发现在远程分片的情况下,shard key 应该是“Non-Monotonically Changing Shard Keys”。 有人可以向我解释吗?示例将不胜感激。 谢谢。 mongodb sharding 1 个回答 Voted Best Answer mustaccio 2019-03-21T11:11:38+08:002019-03-21T11:11:38+08:00 这里的单调是在严格的数学意义上使用的。单调变化的键是这样的,即每个键值不小于(单调递增)或不大于(单调递减)所有先前生成的键。序列,在这个词的 SQL 意义上,将是单调键的一个例子。 相反,一个非单调变化的键是这样的,它的值可以小于、大于或等于任何先前生成的值。随机值就是一个例子。 用于分片的单调变化键会导致新插入的文档被路由到单个分片,从而产生性能热点。使用非单调键写入将分布在所有分片(希望如此),从而提高性能。
这里的单调是在严格的数学意义上使用的。单调变化的键是这样的,即每个键值不小于(单调递增)或不大于(单调递减)所有先前生成的键。序列,在这个词的 SQL 意义上,将是单调键的一个例子。
相反,一个非单调变化的键是这样的,它的值可以小于、大于或等于任何先前生成的值。随机值就是一个例子。
用于分片的单调变化键会导致新插入的文档被路由到单个分片,从而产生性能热点。使用非单调键写入将分布在所有分片(希望如此),从而提高性能。