MongoDB中索引的使用
-
前言:
了解关系数据库,都知道索引通常能够极大的提高查询的效率。mongdb也是如此,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,无疑对网站的性能是非常致命的。一、语法
索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库集合中一个文档或多个文档的值进行排序的一种结构。
其语法如下:
db.COLLECTION_NAME.ensureIndex({KEY:1|-1})
同样1代表升序,-1代表降序范例: > db.shiyanlou.ensureIndex({"name":1})
二、ensureIndex()的可选参数如下:
1、background 建立索引要不要阻塞其他数据库操作,默认为false 2、unique 建立的索引是否唯一,默认false 3、name 索引的名称,若未指定,系统自动生成 4、dropDups 建立唯一索引时,是否删除重复记录,默认flase 5、sparse 对文档不存在的字段数据不启用索引,默认false 6、expireAfterSeconds 设置集合的生存时间,单位为秒 7、weights 索引权重值,范围为1到99999 8、default-language 默认为英语 9、v 索引的版本号
范例如下:
> db.shiyanlou.ensureIndex({"user_id":1,"name":1},{background:1})