zoukankan      html  css  js  c++  java
  • MongoDB 索引

    索引

    • 在mysql中已经学习了索引,并知道索引对于查询速度的提升
    • mongodb也支持索引,以提升查询速度

    步骤一:创建大量数据

    • 在命令行中执行如下代码,向集合中插入10万条文档
    • 注意:不要在图形界面中执行,因为软件原因无法插入10万条数据就会中断执行
    for(i=0;i<100000;i++){
        db.t1.insert({name:'test'+i,age:i})
    }
    

      

    步骤二:数据查找性能分析

    • 查找姓名为'test10000'的文档
    db.t1.find({name:'test10000'})
    

      

    • 使用explain()命令进行查询性能分析
    db.t1.find({name:'test10000'}).explain('executionStats')
    

      

    • 其中的executionStats下的executionTimeMillis表示整体查询时间,单位是毫秒
    • 性能分析结果如下图,由于机器的配置原因这个时间也会不同

    步骤三:建立索引

    • 创建索引
    • 1表示升序,-1表示降序
    db.集合.ensureIndex({属性:1})
    如
    db.t1.ensureIndex({name:1})
    

      

    步骤四:对索引属性查询

    • 执行上面的同样的查询,并进行查询性能分析
    db.t1.find({name:'test10000'}).explain('executionStats')
    

      

    • 性能分析结果如下图

    索引的命令

    • 建立唯一索引,实现唯一约束的功能
    db.t1.ensureIndex({"name":1},{"unique":true})
    

      

    • 联合索引,对多个属性建立一个索引,按照find()出现的顺序
    db.t1.ensureIndex({name:1,age:1})
    

      

    • 查看文档所有索引
    db.t1.getIndexes()
    

      

    • 删除索引
    db.t1.dropIndex('索引名称')
    

      

  • 相关阅读:
    HTML5
    js实现查找字符串中最多的字符的个数
    get和post的区别
    第十七篇 类的特殊成员
    第十八篇 面向对象修饰符
    MariaDB+Keepalived双主高可用配置MySQL-HA
    linux命令详解——crontab
    Java的内存泄漏
    jvm监控工具jconsole进行远程监控配置
    loadrunner执行场景时报Error -27040: Data Format Extension: Init: Internal error问题解决
  • 原文地址:https://www.cnblogs.com/yoyo1216/p/10130205.html
Copyright © 2011-2022 走看看