mongo性能优化
来源:互联网 发布:淘宝的钻石和皇冠 编辑:程序博客网 时间:2024/06/05 21:09
一 索引
mongo的索引信息被保存在system.indexes 中,默认为_id创建索引
1 普通索引
db.users.ensureIndex({name:1})
如果数据量很大,那么放后台去跑
db.users.ensureIndex({name:1},{backgroud:true})
2 组合索引
db.address.ensureIndex( { "addr.city" : 1, "addr.state" : -1 } );
和关系型数据库差不多,条件列顺序和索引顺序一致才能使用哦
3 唯一索引
db.collections_name.ensureIndex({"age": 1}, {unique: true});
4 强制使用索引 (加hint)
db.users.find({age:{$lt:30}}).hint({name:1, age:1})
5 删除索引
users集合的索引都被干掉了
db.users.dropIndexes()
删除users集合的某一个索引
db.users.dropIndexes({"age":1})
6 查看某个集合上的索引
db.users.getIndexes();
二 利用profile定位慢查询
db.setProfilingLevel()
0 不开启
1 记录慢查询(默认为>100ms)
2 记录所有查询
设置记录的的条件,500ms
1 db.setProfilingLevel(1,500);
db.getProfilingStatus(); 查看是否打开慢查询
2 生成慢查询
db.system.profile.find().sort({millis:-1}).limit(10); 返回10条慢查询
根据语句,加索引
3 关闭profile
db.setProfilingLevel(0);
三 性能监控工具
1 mongostat
insert: 每秒插入量
query: 每秒查询量
update: 每秒更新量
delete: 每秒删除量
locked: 锁定量
qr | qw: 客户端查询排队长度(读|写)
ar | aw: 活跃客户端量(读|写)
conn: 连接数
time: 当前时间
2 db.serverStatus
关注
extra_info.page_faults
lock
mem
connections
mongo的索引信息被保存在system.indexes 中,默认为_id创建索引
1 普通索引
db.users.ensureIndex({name:1})
如果数据量很大,那么放后台去跑
db.users.ensureIndex({name:1},{backgroud:true})
2 组合索引
db.address.ensureIndex( { "addr.city" : 1, "addr.state" : -1 } );
和关系型数据库差不多,条件列顺序和索引顺序一致才能使用哦
3 唯一索引
db.collections_name.ensureIndex({"age": 1}, {unique: true});
4 强制使用索引 (加hint)
db.users.find({age:{$lt:30}}).hint({name:1, age:1})
5 删除索引
users集合的索引都被干掉了
db.users.dropIndexes()
删除users集合的某一个索引
db.users.dropIndexes({"age":1})
6 查看某个集合上的索引
db.users.getIndexes();
二 利用profile定位慢查询
db.setProfilingLevel()
0 不开启
1 记录慢查询(默认为>100ms)
2 记录所有查询
设置记录的的条件,500ms
1 db.setProfilingLevel(1,500);
db.getProfilingStatus(); 查看是否打开慢查询
2 生成慢查询
db.system.profile.find().sort({millis:-1}).limit(10); 返回10条慢查询
根据语句,加索引
3 关闭profile
db.setProfilingLevel(0);
三 性能监控工具
1 mongostat
insert: 每秒插入量
query: 每秒查询量
update: 每秒更新量
delete: 每秒删除量
locked: 锁定量
qr | qw: 客户端查询排队长度(读|写)
ar | aw: 活跃客户端量(读|写)
conn: 连接数
time: 当前时间
2 db.serverStatus
关注
extra_info.page_faults
lock
mem
connections
3 db.stats
四 常用性能优化方案
1 创建索引
2 限定返回结果
3 只查询使用的字段
4 发现性能有问题,配合使用profiling和mongostat
阅读全文
0 0
- Mongo Database 性能优化
- mongo性能优化
- mongo查询的性能优化
- Mongo:笔记四(索引 性能优化)
- Mongo性能检查
- mongo 单机性能测试
- mongo 索引优化
- tomcat/mongo优化
- mongo查询优化
- mongo数据库的性能问题
- mongo性能分析工具详解
- mongo如何查看性能 debug
- Mongo性能测试-python脚本
- Mongo on TerarkDB 性能评测
- mongo,redis等NoSQL数据库性能比较
- mongo $where 使用注意性能问题
- mongo性能测试demo 代码正确运行
- mongo性能查看常用shell command
- ORACLE GROUPING函数的使用
- jass 添加资源的代码
- C#使用RSA进行私钥加密公钥解密
- IOS-UILabel自适应高度
- ThinkPHP 3.2.2 视图模板中使用字符串截取函数
- mongo性能优化
- TCP协议中的PSH和URG标志位
- java实现一个月的日历打印
- shell eval命令
- 20、分配swap分区
- 日常问题(三)——Linux系统下MariaDB数据库无法删除
- Oracle字段类型及存储
- 回调函数透彻理解Java
- 浏览器兼容性问题 收集