MongoDB中的复合索引提高了多重匹配(而不是排序)



文档在这方面似乎有点不清楚。

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)上的三个单字段索引更好?

是的,创建复合索引可以提高查询性能。

如果所有查询都使用相同的单键,则创建单键索引

如果对于一个特定的集合,您使用单个键进行匹配,如where a=1

创建复合索引以支持多种不同的查询

如果您的查询使用一个或多个键,最好使用复合索引。

db.sample.createIndex( { "a": 1, "b": 1, "c":1 } )

您可以只查询a,也可以查询a与b的组合,还可以查询a, b和c。您可以使用explain()方法来了解您的查询使用的是哪个计划。

Index Intersection也可以优化查询的性能。它可以支持复合索引所不能支持的。

相关内容

  • 没有找到相关文章

最新更新