mongodb版本 4.2(4.2版本开始支持通配符索引)
我有一个 table 表
然后有三个索引: 索引一:{a:1, b:1, c:1, d:1} 索引2 :{d:1, c:1, b:1, a:1} 索引3:{a:1, b:1, e:1, c:1}
然后我的搜索条件是:{a:1, b:1, c:1, d:1}
在explain分析发现搜索命中了索引3
为什么不是索引1呢
zale 已回答的问题
MongoDB 会根据其认为一种最优的查询计划来选择索引,参考官方的说法:
https://docs.mongodb.com/manual/core/query-plans/index.html
一般会和完成查询所扫描(work)的单元数有关系,具体的内部逻辑有一篇文章可以看看。
https://mongoing.com/archives/5624
如果你希望指定索引进行查询,可以使用 hint() 语法。
zale 已回答的问题