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索引,性能分析相关推荐
- MongoDB查询性能分析
explain()方法能够提供大量与查询相关的信息.对于速度比较慢的查询来说,它是最重要的性能分析工具之一.通过查看一个查询的explain()输出信息,可以知道查询使用了哪个索引,以及是如何使用的. ...
- 小编带你了解oracle使用索引和不使用索引性能分析
首先准备一张百万条数据的表,这样分析数据差距更形象! 下面用分页表数据对表进行分析,根据EMP_ID 字段排序,使用索引和不使用索引性能差距! sql查询语法准备,具体业务根据具体表书写sql语法: ...
- oracle使用索引和不使用索引性能分析
首先准备一张百万条数据的表,这样分析数据差距更形象! 下面用分页表数据对表进行分析,根据EMP_ID 字段排序,使用索引和不使用索引性能差距! sql查询语法准备,具体业务根据具体表书写sql语法: ...
- 索引-性能分析-查看SQL执行频次以及慢查询日志
索引语法 1.创建索引时候 [UNIQUE | FULLTEXT] 关键字是可选的: 1)加上 UNIUQE 就是创建唯一索引(唯一索引,说明改字段不能出现重复数据): 2)加上FULLTEXT 创建 ...
- MongoDB查询性能分析—— explain 操作返回结果详解
MongoDB 提供 db.collection.explain(), cursort.explain() 及 explain 命令获取查询计划及查询计划执行统计信息. explain 结果将查询计划 ...
- MySQL索引优化分析
转载来源:https://www.cnblogs.com/itdragon/p/8146439.html MySQL索引优化分析 为什么你写的sql查询慢?为什么你建的索引常失效?通过本章内容,你将学 ...
- MySQL联合索引性能比较
在分析联合索引性能之前,温故下基础知识. 1 数据结构 1.1 B-树 一个m阶树满足以下条件: 每个节点至多拥有m颗子树: 根节点至少2颗子树(若存在子树的情况下): 非根节点至少拥有m/2颗子树, ...
- MySQL第12天:MySQL索引优化分析之性能优化案例实践
MySQL索引优化分析之性能优化案例实践 执行计划中各select_type含义可以看:MySQL第11天:MySQL索引优化分析之性能分析 https://weibo01.blog.csdn.net ...
- MySQL第11天:MySQL索引优化分析之性能分析
MySQL索引优化分析之性能分析 一.MySQL Query Optimizer 二.MySQL常见瓶颈 三.Explain(执行计划) 1.什么是执行计划? 2.执行计划能干什么? ...
最新文章
- 【云计算】阿里云云计算专业认证考试
- python基础知识整理-python爬虫基础知识点整理
- oracle数据库复制mysql,MySQL/Oracle数据库,使用SQL快速复制表结构或数据
- 网易云信国际短信上线啦!
- opencv在android,OpenCV 在 Android 中的应用
- c语言学习-判断101-200之间有多少个素数,并输出所有素数及素数的个数
- MFC初探 —— 文件与文件夹的选择与拷贝
- 幕享 for Mac(全平台全设备投屏共享软件)中文版
- java第二天学习笔记
- 462.最少移动次数使数组元素相等II
- 硬盘分区之MBR讲解
- win10系统更新服务器太慢了,Win10易升更新系统很慢的解决方法
- Timesten Classic 18.1 建立缓存组
- pc端js获取当前经纬度_js获取用户当前地理位置(省、市、经纬度)
- iOS 堆栈获取异常分析
- 最新码支付源码+完整版+免挂监听回调+微信、支付宝、qq监控APP打包教程
- 华为p20支持手机云闪付吗_银联云闪付支持HuaweiPay
- html模板改成织梦模板教程,织梦教程:如何用dedecms织梦模板搭建网站?
- win7防火墙端口开放
- vmware虚拟机windows xp 登录后死掉不能修复的错误的解决
热门文章
- 负压式爬壁机器人_一种负压吸附式仿生爬壁机器人的制作方法
- Objective-C ,ios,iphone开发基础:ios数据库(The SQLite Database),使用终端进行简单的数据库操作...
- 数据结构-堆 Java实现
- 3. 从零开始学CSRF
- oracle基础学习---------1
- Android学习笔记(八)
- Codechef之CodeCraft: IIIT Hyderabad
- 转载:ImportError: No module named ‘httplib‘
- 诗与远方:无题(七十)- 小熊熬夜记
- jsp标记之动作标记介绍