MongoDB分片片键选择参考建议


一般来说,完美的片键将会有下列的特征:
  • 1).所有的插入、更新以及删除将会均匀分发到集群中的所有分片中。
  • 2).所有的查询将会在集群中的所有分片中平均地分发。
  • 3).所有的操作将会只面向相关的分片:更新或者删除操作将不会发送到一个没有存储被修改数据的分片上。
  • 4).相似地,一个查询将不会被送到没有存储被查询数据的分片上。

好的片键的五个准则,它们是:

  • 片键基数
  • 写分布
  • 读分布
  • 定向读
  • 读本地性

片键选择上,建议如下:
  • 1).不要选时间日期,选尽可能使数据分散的字段
  • 2).分析下最常见的查询,防止使用单一自增的字段,避免新增数据始终路由到一个分片,造成写热点
  • 3).如果有范围查询的,最好包含一个对应的业务字段,避免查询的时候数据太分散

请使用浏览器的分享功能分享到微信等