【问题标题】:Mongodb multiple compound indices - same keys?Mongodb多个复合索引 - 相同的键?
【发布时间】:2019-12-31 03:25:11
【问题描述】:

考虑以下复合索引:

{name: 1, occupation: 1, time: 1}

{name: 1, time: 1}

假设您有两种类型的查询:

{name: 'john', occupation: 'engineer'}

{name: 'allan', time: {$lt: 3}}

第二种查询能否使用第一种索引? 请注意,它没有指定职业。

它和使用第二个索引一样有效吗?

【问题讨论】:

标签: mongodb indexing indices


【解决方案1】:

第二种查询能否使用第一个索引?请注意,它没有指定职业。

是的。

但是,与{name: 1, time: 1} 相比,它的效率相对较低(取决于您拥有多少职业,以及您拥有多少同名)。

任何一个索引都应该没问题,因为name 应该很有选择性。

查看db.collection.explain() 和生成的explain results 以检查查询计划以及您的查询使用了哪个索引。

请注意,如果您的集合非常小,则任何一个索引都可以。要进行更逼真的模拟,请使用mgeneratejs 之类的东西插入随机数据,该数据可以生成例如100 万个示例文档。

【讨论】:

    猜你喜欢
    • 2013-12-15
    • 1970-01-01
    • 2012-11-16
    • 2016-10-19
    • 2016-05-04
    • 1970-01-01
    • 2014-10-25
    • 2022-09-23
    • 1970-01-01
    相关资源
    最近更新 更多