我是 mongodb 的新手,我需要有关使用复合索引提高查询性能的帮助。
我正在使用“_id”字段进行分页。询问:
db.data.find( {"$or": [ { "cat": "5" }, {"cat": "6" } ] }, {"style": "3"},
{"area": "London"}, {"_id": {"$lt": 103}).sort( { "_id": 1 } ).limit(30)
style
并且area
可以是可选的,因此这些也是可能的。
db.data.find( {"$or": [ { "cat": "5" }, {"cat": "6" } ] },
{"area": "London"}, {"_id": {"$lt": 103}).sort( { "_id": 1 } ).limit(30)
db.data.find( {"$or": [ { "cat": "5" }, {"cat": "6" } ] }, {"style": "3"},
{"_id": {"$lt": 103}).sort( { "_id": 1 } ).limit(30)
db.data.find( {"$or": [ { "cat": "5" }, {"cat": "6" } ] },
{"_id": {"$lt": 103}).sort( { "_id": 1 } ).limit(30)
这些查询是否可以使用此复合索引,还是我需要更多附加索引?
{ "cat": 1, "style": 1, "area": 1, "_id": 1 }
编辑
我不确定这些索引中的哪一个对查询有效。
{ "cat": 1, "style": 1, "area": 1, "_id": 1 } or
{ "_id": 1, "cat": 1, "style": 1, "area": 1 }
款式数量:16
区域数量:50
id数:1000万