Mongdb优化
1.索引
1)基础索引
--为集合colt1的x列创建升序基础索引
# cd /usr/local/mongodb4.2.2/bin
# ./mongo -uroot -p
> use db_test
> db.colt1.find();
> db.colt1.getIndexes();
> db.colt1.ensureIndex({x:1});
> db.colt1.getIndexes();
--为集合colt1的y列创建降序基础索引
> db.colt1.ensureIndex({y:-1});
> db.colt1.getIndexes();
--通过后台方式静默为colt1的y列创建升序索引,以免阻塞mongodb上的读写操作
> db.colt1.getIndexes();
> db.colt1.dropIndex("y_-1");
> db.colt1.getIndexes();
> db.colt1.ensureIndex({y:1},{background:true});
--查看当前活动的且运行时间超过3秒的后台创建索引任务
> db.currentOp({"active":true,"secs_running":{ "$gt":3}});
--kill掉正在运行的任务
> db.killOp(opid)
2)文档索引
--为colt1中addr列创建文档索引
> db.colt1.insert({x:"john",y:"student",addr:{country:"cn",city:"shanghai"}});
> db.colt1.find();
> db.colt1.ensureIndex({addr:1});
> db.colt1.getIndexes();
> db.colt1.find({addr:{"cn","shanghai"}});
> db.colt1.find({addr:{"shanghai","cn"}});
3)复合索引
--为colt1中x和y创建符合索引
> db.colt1.ensureIndex({x:1,y:-1});
> db.colt1.getIndexes();
> db.colt1.find().sort({x:1,y:-1});
4)唯一索引
--为colt1中x列创建唯一索引
> db.colt1.getIndexes();
> db.colt1.dropIndex("x_1");
> db.colt1.ensureIndex({x:1},{unique:true});
> db.colt1.insert({x:"mongodb"});
> db.colt1.insert({x:"mongodb1"});
> db.colt1.find();
5)强制使用索引
--强制使用x和y列上的复合索引
> db.colt1.find({x:"mongdb",y:"nohint"}).explain();
> db.colt1.find({x:"mongdb",y:"nohint"}).hint({x:1,y:-1}).explain();
6)删除索引
--删除colt1中x列上的索引
> db.colt1.dropIndex({x:1});
--删除colt1上名字为"y_1"的索引
> db.colt1.dropIndex("y_1");
--删除colt1上的所有索引
> db.colt1.dropIndexes();
7)重建索引
--删除并重建colt1上的所有索引
> db.colt1.reIndex();
8)查看执行计划
> db.colt1.find({x:1}).explain();
2.profile使用
1)开启profile
--通过启动参数开启profile
# cd /usr/local/mongodb4.2.2/bin
# ./mongod -f /etc/mongodb.cnf -profile=1
--通过客户端命令行开启
> db.setProfilingLevel(2);
> db.getProfilingLevel();
--注
0:不开启;
1:记录慢操作;
2:记录所有操作;
2)设置慢操作阈值
--设置慢操作阈值为1s
> db.setProfilingLevel(1,1000);
--查询大于100ms的profile记录
> db.system.profile.find({millis:{$gt:100}});
3.限制返回的列和记录数
--限制colt1中值返回x和y列的2条记录
> db.colt1.find({},{x:1,y:1}).sort({x:1}).limit(2);
Mongdb优化的更多相关文章
- (转)mongdb性能优化收集
一.数据库最大连接数问题当你在后台日志中,发现大量“connection refused because too many open connections: 819”信息时,一般跟你没有设置合适的最 ...
- HBase与MongDB等NoSQL数据库对照
HBase概念学习(十)HBase与MongDB等NoSQL数据库对照 转载请注明出处: jiq•钦's technical Blog - 季义钦 一.开篇 淘宝之前使用的存储层架构一直是MySQL数 ...
- HBase概念学习(十)HBase与MongDB等NoSQL数据库对照
转载请注明出处: jiq•钦's technical Blog - 季义钦 一.开篇 淘宝之前使用的存储层架构一直是MySQL数据库,配合以MongDB,Tair等存储. MySQL因为开源,而且生态 ...
- node.js(小案例)_使用mongodb对学生信息列表优化
一.前言 1.这篇文章主要对上一篇案列在操作增删改的时候使用mongodb进行优化 2.项目源码(包含上):https://github.com/4561231/crud-express-node.g ...
- NOSQL之Redis、MongDB、Habase、Cassandra的介绍与比较
一.Redis介绍 1.1Redis优点 (1)Redis拥有非常丰富的数据结构: (2)Redis提供事务的功能,可以保证一串命令的原子性,中间不会被任何打断. (3)数据存储在内存中,读写 ...
- mongdb与mysql的联系和区别
与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精确值. ...
- 淘宝在hbase中的应用和优化
本文来自于NoSQLFan联合作者@koven2049,他在淘宝从事Hadoop及HBase相关的应用和优化. 对Hadoop.HBase都有深入的了解,本文就是其在工作中对HBase的应用优化小结, ...
- RethinkDB是什么?—— 面向文档的NOSQL数据库,MVCC+Btree索引,pushes JSON to your apps in realtime采用push思路,优化的ssd存储
RethinkDB是什么? RethinkDB是新一代的面向文档的数据库存储管理系统,原本是MySQL中针对SSD优化的一个存储引擎,后来脱离了MySQL成为了独立的系统. 数据如何存储在磁盘上? 数 ...
- MongoDB进阶之路:不仅仅是技术研究,还有优化和最佳实践--转载
摘要:MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. 本文将从操作手册.技术研究.会议分享.场景应用等几个方面给大家推荐干货好文 ...
随机推荐
- JavaScript复习大纲
1. HTML.CSS和JavaScript各自在网页设计中的作用. 1.HTML生成结构. 2.CSS样式美化. 3.JavaScript的作用: (1) 操作HTML及CSS,让网页具有动态行为. ...
- 打包错误:Failed to execute goal org.scala-tools:maven-scala-plugin:2.15.2:compile (default) on project MusicProject: wrap: org.apache.commons.exec.ExecuteException:
错误:Failed to execute goal org.scala-tools:maven-scala-plugin:2.15.2:compile (default) on project Mus ...
- 厉害啊!第一次见到把Shiro运行流程写的这么清楚的,建议收藏起来慢慢看
前言 shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证.用户授权. spring中有spring security (原名Acegi),是一个权限框架,它和spring依赖 ...
- 攻克弹唱第九课(如何运用好G大调和弦)
在本期文章中,笔者将使用guitar pro7软件与大家分享如何运用好G大调音阶的经验. 众所周知,在我们学习吉他的过程中,先从C大调开始,再以G大调为深入,然后才走过入门的阶段.很多朋友都觉得自己对 ...
- 如何卸载MathType 7?
作为好用的公式编辑器,一般情况下是不会将其从电脑上卸载的,但是当电脑负荷过多,导致电脑运行缓慢时,就需要考虑卸载一些软件,本节就来学习卸载MathType 7的方法. 具体操作步骤如下: 1.打开控制 ...
- Codeforces Round #667 (Div. 3) B、C、D、E 题解
抱歉B.C题咕了这么久 B. Minimum Product #枚举 #贪心 题目链接 题意 给定四个整数\(a, b, x, y\),其中\(a\geq x, b\geq y\),你可以执行不超过\ ...
- 为什么学完C语言觉得好像没学一般?
不少同学从Hello world学到文件操作之后,回顾感觉会又不会? 学会了又感觉没学会?这种不踏实.模糊虚无的感觉? 原因在于编程不同于理论学科,你听懂和理解了理论就可以运用. 比如历史地理,看 ...
- 记一次Ddos遭遇
万年不用的vps最近借朋友用了几天,今天突然跟我说连不上了 上服务器先暴力重启一波 还是不行,netstat一看 端口的连接状态是这个样子: 估计连接被打满了,遂换了个端口 重启之 问题解决
- 测试Hessian反序反序列化 客户端少字段和多字段时能否成功
import java.io.*; import com.caucho.hessian.io.HessianInput; import com.caucho.hessian.io.HessianOut ...
- FlashCache初体验
注意: 测试用的是CentOS6.5 内核版本2.6.32-431.el6.x86_64 步骤: 上传CentOS6.5做本地yum源,安装以下包. yum install gcc yum insta ...