• Mongodb的索引


    1. 简单介绍


    索引是为了加速查询。
    假设没有索引,mongodb在查询时会做表扫描,假设集合非常大时,这个查询会非常慢。
    一般对创建查询时的键都建立索引。

    为排序字段建立索引,假设对未建立索引的字段sort,mongodb会将全部的数据取到内存中来排序,
    假设集合大到不能在内存中排序,则mongodb会报错。

    2. mongodb创建索引


    创建索引使用ensureIndex命令。
    > db.people.ensureIndex({"username" : 1});
    上面语句对people集合的username键做了索引。

    3. 组合索引


    对于组合查询或排序,建立组合索引。
    > db.people.ensureIndex({"date" : -1, "username" : 1});
    索引键的1或者-1,表示索引创建的顺序,1为升序, -1为倒序。
    假设索引仅仅有一个键,则方向无关紧要。

    4. 内嵌文档建立索引


    为blog集合的评论依照时间建立索引:
    > db.blog.ensureIndex({"comments.date" : 1});

    5. 唯一索引


    唯一索引确保集合中的每一个键都是唯一值。
    > db.people.ensureIndex({"username" : 1}, {"uniqe" : true});
    对已有的集合创建唯一索引时,有可能已经有反复值了,这样会创建索引失败。
    dropDups会保留第一个文档,删除后面反复的值。
    > db.people.ensureIndex({"username" : 1}, {"unique" : true, "dropDups" : true});

    6. 查看建立的索引


    索引放在system.indexes集合中。
    > db.system.indexes.find();
    能够查看索引的key, 名称,属于哪个集合。

    7. 删除索引


    通过索引的名称,使用dropIndexes能够删除索引。
    索引名称通过system.indexes来查询。
    > db.user.dropIndexes({"username_1" : 1});

    地址:http://blog.csdn.net/yonggang7/article/details/28100855


  • 相关阅读:
    SQLServer控制用户访问权限表
    jQuery 增加 删除 修改select option .
    C# Socket编程笔记
    前端笔记知识点整合之JavaScript(二)关于运算符&初识条件判断语句
    推荐一款中国风React组件
    Linux命令
    不要总想着二进制
    React 中阻止事件冒泡的问题
    [技术] 如何正确食用cnblogs的CSS定制
    新手如何理解JS面向对象开发?
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3811706.html
Copyright © 2020-2023  润新知