分片集合的索引需要从分片键开始?

时间:2015-04-12 12:53:11

标签: mongodb

我通读了mongo官方网站上的分片文档。 但是,我无法回答这些问题:

  1. 所有分片集合的索引是否需要以分片键开头?

  2. 如果我需要对字段进行分片收集的TTL索引,并且因为TTL不支持复合索引,在这种情况下我会做什么? (字段!=分片键)

1 个答案:

答案 0 :(得分:0)

  1. 否。您可以在分片集合上添加任何索引。但是,不包含分片键的查询将发送到所有分片。然后,单个分片将使用任何现有索引,将其结果发送回mongos查询路由器,如果需要,该路由器将对结果进行排序,并将结果集发送回客户端。有关详细信息,请阅读Routing Process in the MongoDB docs
  2. TTL删除是一个在日期字段上运行的后台进程。每个分片都会产生所说的后台进程。因此,您只需在您选择的日期字段上创建TTL索引即可。每个单独的分片都会处理要删除的文档。