mongodb笔记04--索引

mongodb中的索引:

        索引提高查询速度,降低写入速度,权衡常用的查询字段,不必在太多列上建索引

        在mongodb中,索引可以按字段升序/降序来创建,便于排序。mongodb默认是用btree来组织索引文件,2.4版本以后,也允许建立hash索引.

查看查询计划:

查看索引:

创建索引:

        创建多列索引

        db.collection.ensureIndex({field1:1/-1, field2:1/-1});

        创建子文档索引

        db.collection.ensureIndex({filed.subfield:1/-1});

        创建唯一索引:

        db.collection.ensureIndex({filed.subfield:1/-1}, {unique:true});

        创建稀疏索引:

        稀疏索引的特点------如果针对field做索引,针对不含field列的文档,将不建立索引.与之相对,普通索引,会把该文档的field列的值认为NULL,并建索引.适宜于:小部分文档含有某列时.

        db.collection.ensureIndex({field:1/-1},{sparse:true});

        db.tea.find();

        { "_id" : ObjectId("5275f99b87437c610023597b"), "email" : "a@163.com" }

        { "_id" : ObjectId("5275f99e87437c610023597c"), "email" : "b@163.com" }

        { "_id" : ObjectId("5275f9e887437c610023597e"), "email" : "c@163.com" }

        { "_id" : ObjectId("5275fa3887437c6100235980") }

        如上内容,最后一行没有email列,如果分别加普通索引,和稀疏索引,对于最后一行的email分别当成null 和 忽略最后一行来处理.根据{email:null}来查询,前者能查到,而稀疏索引查不到最后一行.

        创建哈希索引(2.4新增的)

        哈希索引速度比普通索引快,但是,无能对范围查询进行优化.适宜于---随机性强的散列 db.collection.ensureIndex({file:’hashed’});

        重建索引:

        一个表经过很多次修改后,导致表的文件产生空洞,索引文件也如此.可以通过索引的重建,减少索引文件碎片,并提高索引的效率.类似mysql中的optimize table

        db.collection.reIndex()

删除索引:

        删除单个索引        

        删除所有索引

        db.collection.dropIndexes();

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,192评论 2 89
  • 学习《MongoDB 权威指南·第2版》的笔记,结合 MongoDB 官方最新文档(v3.6),简单记录一些概念、...
    小鱼爱小虾阅读 11,279评论 0 5
  • 1、MongoDB概念解析: 2、数据库: "show dbs"命令可以显示所有数据的列表。"db"命令可以显示当...
    妮妮爱布阅读 3,785评论 0 0
  • //使用配置文件启动(如未设置环境变量需要在安装路径的bin文件夹下运行)mongod --config c:\m...
    Anon_0507阅读 3,688评论 0 0
  • 前言 在MongoDB中,索引通常能够极大的提高查询的效率。如果没有索引,MongoDB在读取数据时必须扫描集合中...
    honehou阅读 5,259评论 0 1

友情链接更多精彩内容