我们正在开发一个应用程序,我们需要使用字符串 id 作为 mongodb id。我的问题是:如果我们在 mongodb 上进行分片,字符串 id 会导致任何问题吗?
问问题
329 次
2 回答
1
这在很大程度上取决于字符串的内容。例如,姓氏通常会成为自动平衡的坏分片键,因为几乎所有语言中姓氏开头的字母分布不均匀。然而,这个问题可以通过基于标签的分片来克服,尽管这在扩展时需要相当多的知识和配置。
已经提到了字符串的散列,但是我想补充一点,这样做时您可能会遇到地理分布的数据中心的问题,因为您将无法再将正确的 id 范围分配给它们的地理位置,以防万一是您的身份证(部分)由什么制成的。
另一种解决方案可能是使用复合分片键。
于 2014-09-07T10:37:10.297 回答
0
不,它们可以/应该/将在被分片之前被散列。(虽然可能意味着计算机功率的轻微成本)。
于 2013-08-28T15:10:52.580 回答