创建多个单字段索引与复合索引有什么区别,如下
db.products.createIndex( { "item": 1 } )
db.products.createIndex( { "stock": -1 } )
Run Code Online (Sandbox Code Playgroud)
与
db.products.createIndex( { "item": 1, "stock": -1 }
Run Code Online (Sandbox Code Playgroud)
另外,在创建复合索引后,我是否需要为每个item,单独创建一个字段索引stock?如果是,在什么情况下我需要这样做?
答案取决于您的查询模式。
复合索引满足以下查询
上述复合索引不会单独用于“stock”字段的查询。所以你需要一个单独的索引。
单个索引可以满足仅使用该特定字段的查询。
如果这两个索引单独存在并且查询同时包含“item”和“stock”,则索引的选择取决于较高的基数。这就是这两个字段中的哪个字段可以让 MongoDB 更好地缩小结果集的范围。
进一步阅读复合索引。
| 归档时间: |
|
| 查看次数: |
1693 次 |
| 最近记录: |