MongoDB优化

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: MongoDB 3.4 上周有幸参与一次公司的MongoDB测试,算是一次实战吧,结合网上的内容和自己的体会总结了以下几点优化: 1. 开启profile,这个可以监控执行慢的语句,这样可以分析哪些语句执行较慢; 2. 善用mongo提供的工具,如mongostat、mongoCompass等 3. 对于执行慢的语句执行explain,更加具体的分析查询信息、查询统计、使用索引等。

MongoDB 3.4

学生党上周有幸参与某公司的MongoDB测试,算是一次实战吧,结合网上的内容和自己的体会总结了以下几点优化:


1. 开启profile,这个可以监控执行慢的语句,这样可以分析哪些语句执行较慢;


2. 善用mongo提供的工具,如mongostat、mongoCompass等


3. 对于执行慢的语句执行explain,更加具体的分析查询信息、查询统计、使用索引等。


4. 创建索引,但是索引不宜创建过多,我们曾尝试建立十个索引,结果插入速度从2万下降到6000,维护索引代价也不小,建议建立复合索引和稀疏索引。另外,索引本身是有限制的。集合中索引不能超过64个,索引长度不能超过128个字符,复合索引最多用31个字段。


5. 如果不是强一致可以考虑读写分离,https://docs.mongodb.com/manual/reference/read-preference/

   shell下可以在配置复制集最后使用rs.slaveOK()(官方已不推荐使用)或db.getMongo().setReadPref(prefStrategy),

   https://docs.mongodb.com/manual/reference/method/js-replication/

   https://docs.mongodb.com/manual/reference/method/Mongo.setReadPref/#Mongo.setReadPref


6. 优化设计


7. 尽量避免全表扫描操作

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
监控 NoSQL 前端开发
软件测试|Mongodb的分页优化及索引使用
软件测试|Mongodb的分页优化及索引使用
378 0
软件测试|Mongodb的分页优化及索引使用
|
NoSQL 关系型数据库 MySQL
MongoDB 慢查询语句优化分析策略
MongoDB查询语句太慢了,开启 Profiling 功能进行分析后发现,问题其实很好解决,涨知识了
441 0
|
4月前
|
存储 NoSQL MongoDB
MongoDB 助力移动式汽车保养运营模式优化,将开发请求减少 90%
MongoDB针对初级,中级及熟练的技术开发人员推出系列技术文章与行业案例。深入浅出地剖析MongoDB产品基础原理,使用技巧,典型行业场景及应用,还有Code Demo及线上线下活动推荐!
4843 1
MongoDB 助力移动式汽车保养运营模式优化,将开发请求减少 90%
|
4月前
|
存储 监控 NoSQL
MongoDB助力腾讯游戏 优化游戏开发体验
无论在功能还是性能上,MongoDB都很好地契合了游戏业务场景,带给腾讯游戏的不只是功能价值,还有运维价值
MongoDB助力腾讯游戏 优化游戏开发体验
|
8月前
|
NoSQL MongoDB
MongoDB-分片优化
分片的主要目的就是将数据分配到不同的服务器中保存, 提升服务器的容量, 让数据更加的均衡, 更有效的降低服务器的压力, 但是随着时间推移, 某些数据段中保存的数据会越来越多, 所以为了保证个分片均衡, 当某个数据段数据过多或体积过大的时候, 系统就会自动在下一次操作这个数据段时(新增/更新), 将一个大的数据段分裂成多个小的数据段。
124 0
|
9月前
|
存储 Kubernetes NoSQL
Kubernetes在AliCloud上部署并优化MongoDB
Kubernetes, 阿里云, MongoDB, 优化
195 0
|
9月前
|
存储 弹性计算 运维
互娱NoSQL架构优化 —— 暨MongoDB“在线换引擎”技术服务指南”
XX工作室是某大客户核心游戏工作室,其核心业务是国内二次元RPG手游,采用实时开放世界对战模式,整体采用阿里云方案,本次专项攻坚主要对于玩家在游戏期间各类游戏属性交互(包含过图、物品、面板、剧情等)的核心业务模块进行优化,其中涉及NoSQL部分由于在专项优化期间存在诸多细节,特此提炼出来给各位有类似互娱业务场景进行参考。
百万级高并发mongodb集群性能数十倍提升优化实践(下篇)
本文是oppo互联网某百亿级数据量/百万级高并发mongodb集群线上真实优化案例,荣获mongodb中文社区2019年度一等奖,上篇地址:https://developer.aliyun.com/article/779084?spm=a2c6h.13148508.0.0.37d34f0e4AZoIg
百万级高并发mongodb集群性能数十倍提升优化实践(下篇)
|
存储 JSON NoSQL
MongoDB基本操作(二)——排序、分页、聚合查询、优化索引等
MongoDB基本操作(二)——排序、分页、聚合查询、优化索引等
1243 0
|
存储 运维 监控
阿里云MongoDB助力纵腾集团提升IT系统效率及开发优化
业务工单系统使用阿里云版MongoDB后,解决了查询效率低的问题,极大地提升了业务效率和用户体验,获得了显著的效果。
阿里云MongoDB助力纵腾集团提升IT系统效率及开发优化