什么是哈希指数?

Abd*_* Pp 6 sharding mongodb

MongoDB 2.4有一个新功能,我看到周围的人都在谈论,所以这是我的问题(对不起,如果它们很简单):

  • MongoDB是否在不指定分片键的情况下管理它们?或管理员选择密钥?
  • 是否存在Hostspot问题或磁盘IO滞后的风险,因为Hash和hash是随机的?

Asy*_*sky 4

这个想法是,您可以在要用作分片键的字段上创建散列索引,该字段恰好会产生不良的写入分布(例如,它是单调递增的,并且会在最近的条目上创建热点)。

散列索引中存储的散列是 128 位 md5 散列的 64 位。目标是允许通过密钥的哈希值进行分片,而不需要应用程序了解哈希机制。

您可以在这里找到更多信息:http://docs.mongodb.org/manual/core/sharded-cluster-internals/#sharding-hashed-shard-key-internals

  • 这取决于您将进行的查询类型。如果其中很大一部分是通过单个分片键值(通过 id)那么你就可以了,或者如果其中一些或足够多是通过另一个(索引)属性。有问题的情况是,如果您总是按“此 id 到此 id 范围内的记录”进行查询,则无法使用散列索引。 (2认同)