如果我在一个字段上同时具有简单索引和复合索引,那么在包含该字段的查询中使用哪一个?
Posted
技术标签:
【中文标题】如果我在一个字段上同时具有简单索引和复合索引,那么在包含该字段的查询中使用哪一个?【英文标题】:If I have both simple and compound index on a field, which one gets used in queries containing that field? 【发布时间】:2021-12-29 02:08:07 【问题描述】:我的 mongo 文档中有一个字段“productLowerCase”。我创建了 2 个索引
1. simple
"productLowerCase" : 1
2. compound
"productLowerCase" : 1, "timestamp.milliseconds" : -1
所以如果我运行一个只有 productLowerCase 的查询,说:
db.coll.find("productLowerCase" : $regex : /^cap/)
将使用哪个索引?
【问题讨论】:
【参考方案1】:在这种情况下,mongo 将使用"productLowerCase" : 1
这个索引,但是你可以删除这个索引,因为如果你有复合索引,你可以使用第一个字段进行搜索而不会损失性能。
除此之外,您还可以使用explain()
来解释您的查询。
【讨论】:
以上是关于如果我在一个字段上同时具有简单索引和复合索引,那么在包含该字段的查询中使用哪一个?的主要内容,如果未能解决你的问题,请参考以下文章