这方面的文档似乎有点不清楚。
1)明确了复合指标确实提高了多字段排序(顺序和方向相关)的性能。
2)有一个短语让我觉得也会改进多字段MACH (sql类推: a=1、b=2和c<5)
https://docs.mongodb.org/v3.0/tutorial/optimize-query-performance-with-indexes-and-projections/
如果查询搜索多个字段,则创建复合索引。
这跟分类没什么关系。
那么,字段a、b、c上的复合索引是否比三个单字段索引(其中包括a=1、b=2和c<5)更适合匹配性能?
发布于 2015-08-16 11:47:01
是的,创建复合索引可以提高查询性能。
如果所有查询都使用相同的单键索引,则创建单键索引。
如果对于特定集合,则使用单个键进行匹配,如where a=1
创建复合索引以支持几个不同的查询
如果查询使用一个或多个键,则最好使用复合索引。
db.sample.createIndex( { "a": 1, "b": 1, "c":1 } )您可以只对a进行查询,也可以对a、b和c进行联合查询,还可以使用explain()方法来了解查询所使用的计划。
指数相交还可以优化查询的性能。它可以支持复合指数所不能支持的内容。
https://stackoverflow.com/questions/32033751
复制相似问题