MongoDB 索引

mongoDB 笔记:

Indexes 可以提升 MongoDB 的查询效率。在没有索引的情况下,MongoDB 必须遍历集合( collection scan )。比如,遍历集合中的所有文档,并选择出符合查询条件的文档。如果有设置 indexes,那么 MongoDB 可以通过 indexes 去缩小需要检查的文档的范围。

 

Indexes(索引) 把文档中的一小部分以一种易于查询(traverse)的方式储存,是一种特殊的数据结构。索引保存某个或某群(set)的域(field)的值,并以值为根据排序。已排序的索引项可以提供高效的等值匹配(equality matches)以及基于范围(range-based)查询操作。另外,通过使用 index看,MongoDB 可以返回已排序的结果。

下图:通过 index 查询并对匹配的文档进行排序

image

 

从根本上来说,MongoDB 的 index 跟其他数据库的索引是相似的。MongoDB 把索引定义在集合层,并支持对文档中的域或子域(sub-field)进行索引。

 

复合索引

要注意复合索引的顺序。比如, {userid:1, score:-1},索引先基于 userid 排序,然后对于 相同的 userid 再基于 score 排序

image

 

参考:https://docs.mongodb.org/manual/indexes/

posted @ 2015-11-13 10:33  hwencc  阅读(229)  评论(0编辑  收藏  举报