zoukankan      html  css  js  c++  java
  • MongoDB索引,性能分析

    索引的限制:

    索引名称不能超过128个字符

    每个集合不能超过64个索引

    复合索引不能超过31列

    MongoDB 索引语法

    db.collection.createIndex({ <field>: < 1 or -1 > })

    db.collection.ensureIndex({ <field>: < 1 or -1 > })

    db.collection.createIndex( { "filed": sort } )

    db.collection.createIndex( { "filed": sort , "filed2": sort } )

    db.tab.ensureIndex({"id":1})

    db.tab.ensureIndex({"id":1} ,{ name:"id_ind"})

    db.tab.ensureIndex({"id":1,"name":1},{background:1,unique:1})

    db.tab.ensureIndex( { "id" : "hashed" })

    创建索引(两种方法)

    filed :为键列

    sort :为排序。1 为升序;-1为降序。

    创建单列索引

    创建索引并给定索引名称

    后台创建唯一的复合索引

    创建哈希索引

     (更多参数 看文章底部)

    db.tab.indexStats( { index: "id_ind" } )

    db.runCommand( { indexStats: "tab", index: "id_ind" } )

    db.tab.getIndexes()

    db.system.indexes.find()

    (前2个似乎不能用,官方文档解释)

    (not intended for production deployments)

    查看索引

    db.tab.totalIndexSize();

    查看索引大小

    db.tab.reIndex()

    db.runCommand({reIndex:"tab"})

    重建索引

    db.tab.dropIndex(<indexname>)

    db.tab.dropIndex("id_1")

    db.tab.dropIndexes()

    删除索引

    <indexname>为getIndexes看到的索引名称

    删除所有索引(注意!)

    分析函数

    db.tab.find({"name":"kk50000"}).explain()

    查询name=”kk50000”的执行分析

    db.tab.find({"name":"kk50000"}).explain("queryPlanner")

    db.tab.find({"name":"kk50000"}).explain("Verbosity")

    db.tab.find({"name":"kk50000"}).explain("executionStats")

    db.tab.find({"name":"kk50000"}).explain("allPlansExecution")

    这3种方法执行结果完全包括上面这种的结果

    db.tab.find({"name":"kk50000"}).explain()  结果做分析:

    "cursor" : "BasicCursor",

    "isMultiKey" : false,

    "n" : 1,

    "nscannedObjects" : 966423,

    "nscanned" : 966423,

    "nscannedObjectsAllPlans" : 966423,

    "nscannedAllPlans" : 966423,

    "scanAndOrder" : false,

    "indexOnly" : false,

    "nYields" : 7555,

    "nChunkSkips" : 0,

    "millis" : 4677,

    "server" : "kk-ad:27017",

    "filterSet" : false

    游标类型。BasicCurso(扫描), BtreeCursor(索引)

    是否多键(组合)索引

    返回行数

    扫描行数

    扫描行数

    所有计划扫描的次数

    所有计划扫描的次数

    是否在内存中排序

    耗时(毫秒)

    服务器

  • 相关阅读:
    Android基础之使用Fragment控制切换多个页面
    如何进行fragment中的来回切换?
    【Android】保存Fragment切换状态
    ViewPager+Fragment的结合使用,实现QQ界面的理解
    android 写文件权限
    Android文件操作
    [转]Android读写文件
    【275】◀▶ Python 控制语句说明
    【274】Python 相关问题
    【273】利用ArcPy建立处理数据的脚本
  • 原文地址:https://www.cnblogs.com/ahuo/p/9667421.html
Copyright © 2011-2022 走看看