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})

登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待