Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MongoDb分片和字符串ID_Java_Mongodb_Sharding_Morphia - Fatal编程技术网

Java MongoDb分片和字符串ID

Java MongoDb分片和字符串ID,java,mongodb,sharding,morphia,Java,Mongodb,Sharding,Morphia,我们正在开发一个需要使用字符串id作为mongodb id的应用程序。我的问题是:如果我们在mongodb上进行切分,字符串id会导致任何问题吗?否,它们可以/应该/将在切分之前进行散列。(这可能意味着在计算机电源方面会有一点成本)。不,它们可以/应该/将在切分之前进行散列。(这可能意味着在计算机电源方面会有轻微的成本)。这在很大程度上取决于字符串的内容。例如,姓氏通常是自动平衡的一个不好的切分键,因为在几乎所有语言中,姓氏开头字母的分布都不均匀。然而,这个问题可以通过解决,尽管在扩展时这需要相

我们正在开发一个需要使用字符串id作为mongodb id的应用程序。我的问题是:如果我们在mongodb上进行切分,字符串id会导致任何问题吗?

否,它们可以/应该/将在切分之前进行散列。(这可能意味着在计算机电源方面会有一点成本)。

不,它们可以/应该/将在切分之前进行散列。(这可能意味着在计算机电源方面会有轻微的成本)。

这在很大程度上取决于字符串的内容。例如,姓氏通常是自动平衡的一个不好的切分键,因为在几乎所有语言中,姓氏开头字母的分布都不均匀。然而,这个问题可以通过解决,尽管在扩展时这需要相当多的知识和配置

字符串的散列已经提到,但我想补充一点,在这样做时,您可能会遇到地理分布数据中心的问题,因为如果您的id是(部分)组成的,您将无法再为其地理位置分配正确的id范围


另一种解决方案可能是使用复合切分键。

这在很大程度上取决于字符串的内容。例如,姓氏通常是自动平衡的一个不好的切分键,因为在几乎所有语言中,姓氏开头字母的分布都不均匀。然而,这个问题可以通过解决,尽管在扩展时这需要相当多的知识和配置

字符串的散列已经提到,但我想补充一点,在这样做时,您可能会遇到地理分布数据中心的问题,因为如果您的id是(部分)组成的,您将无法再为其地理位置分配正确的id范围


另一种解决方案可能是使用复合切分键。

只有在创建散列键时,它们才会被散列index@Sammaye当然可以。我已经更正了我的答案,以便更具体地说明这一点。只有在创建哈希表时,才会对它们进行哈希index@Sammaye当然可以。关于这一点,我已经更正了我的答案。你能给我们举个字符串的例子吗?你能给我们举个字符串的例子吗?