Eva*_*van 23 mongodb mongodb-indexes
说我有一个物品文件:price和:qty字段.我有时想要找到与给定匹配的所有文件:price AND:qty,而在其他时候它将是:价格本身或:qty本身.
我已经索引了:price和:qty键,但是我还需要在两者上创建复合索引,还是单键索引足够?
编辑:我在mongodb网站上发现这篇文章非常有用:
kri*_*ina 42
price帮助查询的索引price.qty帮助查询的索引qty.一个指数price,并qty与查询的帮助price和查询的price和qty.所以,就像以一个价格获得两个指数一样.但是,它对查询没有帮助qty.
您应该最小化索引的数量,因此删除一个单键索引并创建一个以该键开头的复合索引.
作为一般规则,如果你正在做一个查询x,y和z,你应该有一个像指数{x:1, y:1, z:1}.此索引将快速执行以下查询:
db.foo.find({x : ..., y : ..., z : ...})
db.foo.find({x : ..., y : ...})
db.foo.find({x : ...})
Run Code Online (Sandbox Code Playgroud)
它不会使这些查询快速:
db.foo.find({y : ..., z : ...})
db.foo.find({y : ...})
Run Code Online (Sandbox Code Playgroud)
因此,请确保您的查询中包含索引的起始键.