Mongodb 多个复合索引 - 相同的键?
Mongodb multiple compound indices - same keys?
考虑以下复合指数:
{name: 1, occupation: 1, time: 1}
{name: 1, time: 1}
假设您有两种类型的查询:
{name: 'john', occupation: 'engineer'}
{name: 'allan', time: {$lt: 3}}
第二类查询可以使用第一个索引吗?
请注意,它没有指定职业。
它和使用第二个索引一样有效吗?
Will the second type of query be able to use the first index? Note that it does not specify an occupation.
是的。
然而,与 {name: 1, time: 1}
.
相比,它会相对低效(取决于你有多少职业,以及你有多少相同的名字)
任何一个索引都应该没问题,因为 name
应该很有选择性。
查看 db.collection.explain() and the resulting explain results 以检查查询计划以及您的查询使用的索引。
请注意,如果您的 collection 非常小,则任一索引都可以。要进行更逼真的模拟,请使用 mgeneratejs 之类的东西插入随机数据,这些数据可以生成例如100 万个示例文档。
考虑以下复合指数:
{name: 1, occupation: 1, time: 1}
{name: 1, time: 1}
假设您有两种类型的查询:
{name: 'john', occupation: 'engineer'}
{name: 'allan', time: {$lt: 3}}
第二类查询可以使用第一个索引吗? 请注意,它没有指定职业。
它和使用第二个索引一样有效吗?
Will the second type of query be able to use the first index? Note that it does not specify an occupation.
是的。
然而,与 {name: 1, time: 1}
.
任何一个索引都应该没问题,因为 name
应该很有选择性。
查看 db.collection.explain() and the resulting explain results 以检查查询计划以及您的查询使用的索引。
请注意,如果您的 collection 非常小,则任一索引都可以。要进行更逼真的模拟,请使用 mgeneratejs 之类的东西插入随机数据,这些数据可以生成例如100 万个示例文档。