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(索引) 是否多键(组合)索引 返回行数 扫描行数 扫描行数 所有计划扫描的次数 所有计划扫描的次数 是否在内存中排序 耗时(毫秒) 服务器 |
MongoDB索引,性能分析的更多相关文章
- MySQL 索引性能分析概要
上一篇文章 MySQL 索引设计概要 介绍了影响索引设计的几大因素,包括过滤因子.索引片的宽窄与大小以及匹配列和过滤列.在文章的后半部分介绍了 数据库索引设计与优化 一书中,理想的三星索引的设计流程和 ...
- [MongoDB]Profiling性能分析
摘要 上篇文章介绍了mapReduce这个聚合操作.本篇将继续学习,db有了,collection和document也有,基本上够用了,但是随着项目上线后,发现业务数据越来越多,查询效率越来越慢,这时 ...
- oracle使用索引和不使用索引性能分析
首先准备一张百万条数据的表,这样分析数据差距更形象! 下面用分页表数据对表进行分析,根据EMP_ID 字段排序,使用索引和不使用索引性能差距! sql查询语法准备,具体业务根据具体表书写sql语法: ...
- MySQL索引性能分析
为什么要做性能分析 你有没有这样的情况. 面对一个你没怎么写过的.复杂的业务,你构思了很久,终于开始敲下了第一段代码. 写的过程迷迷糊糊,有的时候还能把自己搞晕了. 但你还是终于把它写完了. 但是点击 ...
- MongoDB 索引 explain 分析查询速度
一.索引基础索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得更快.MongoDB 的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查询优化技巧.下面是创建索引 ...
- Mysql 索引优化分析
MySQL索引优化分析 为什么你写的sql查询慢?为什么你建的索引常失效?通过本章内容,你将学会MySQL性能下降的原因,索引的简介,索引创建的原则,explain命令的使用,以及explain输出字 ...
- mySql索引优化分析
MySQL索引优化分析 为什么你写的sql查询慢?为什么你建的索引常失效?通过本章内容,你将学会MySQL性能下降的原因,索引的简介,索引创建的原则,explain命令的使用,以及explain输出字 ...
- MySQL高级学习笔记(四):索引优化分析
文章目录 性能下降 SQL慢 执行时间长 等待时间长 查询语句写的烂 查询数据过多 关联了太多的表,太多join 没有利用到索引 单值 复合 服务器调优及各个参数设置(缓冲.线程数等)(不重要DBA的 ...
- MongoDB 索引 .explain("executionStats")
MongoDB干货系列2-MongoDB执行计划分析详解(3) http://www.mongoing.com/eshu_explain3 MongoDB之使用explain和hint性能分析和优化 ...
随机推荐
- CSS工具之CSS重置(CSS Reset)
css代码: /* v1.0 | 20080212 */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, ...
- Git(四)Git的分支管理
一. 创建合并分支原理 在我们每次的提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD指针严格来说不是指 ...
- Python装饰器进阶
装饰器进阶 现在,我们已经明白了装饰器的原理.接下来,我们还有很多事情需要搞清楚.比如:装饰带参数的函数.多个装饰器同时装饰一个函数.带参数的装饰器和类装饰器. 装饰带参数函数 def foo(fun ...
- Python join() 方法与os.path.join()的区别
Python join() 方法与os.path.join()的区别 pythonJoinos.path.join 今天工作中用到python的join方法,有点分不太清楚join() 方法与os.p ...
- 使用 Python 在 Linux 上实现一键回归测试
从代码库迁出代码 —- pexpect 的使用 测试人员从代码库(例如 CVS )迁出代码的过程中,需要手动输入访问密码,而 Python 提供了 Pexpect 模块则能够将手动输入密码这一过程自动 ...
- 膨胀卷积与IDCNN
Dilation 卷积,也被称为:空洞卷积.膨胀卷积. 一.一般的卷积操作: 首先,可以通过动态图,理解正常卷积的过程: 如上图,可以看到卷积操作. 对于CNN结构,通常包括如下部分: 输入层 (in ...
- Java多线程runnable
主要为大家分享Java多线程怎么实现Runnable方式 一 :主要步骤 1.定义实现Runnable接口 2.覆盖Runnable接口中run方法,将线程要运行的代码存在run方法里 3.用Thre ...
- hashCode()方法与equals()方法
摘自别人的评论:http://blog.csdn.net/fhm727/article/details/5221792 当向集合Set中增加对象时,首先集合计算要增加对象的hashCode码,根据该值 ...
- BZOJ3779 : 重组病毒
一个点的感染时间为它到根路径上虚边数+1. 用Link-Cut Tree模拟虚实边切换,每次切换时等价于在一段或两段DFS序区间更新,线段树维护即可. 时间复杂度$O(n\log^2n)$. #inc ...
- Gunicorn设计部分的翻译
Design 关于Gunicorn架构的简要描述. Server Model Gunicorn是基于pre-fork(预启动,提前fork)的工作模式.这就意味着Gunicorn是由一个主进程来管理这 ...