关注 MongoDB 性能的 5 个步骤
💡一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 ;- 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;
截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2800+ 小伙伴加入学习 ,欢迎点击围观
您是否在 MongoDB 设置中遇到一些性能问题?
在这种情况下,请按照以下步骤为您的系统提供一些急救,并为长期架构(例如分片)获得一些空间。
第 1 步:启用慢速查询
获取有关系统行为和性能瓶颈的情报。通常慢查询和你的性能瓶颈之间有很高的相关性,所以使用以下方法来启用你的系统分析收集:
db.setProfilingLevel(1, 100);
第 2 步:使用解释
使用 explain 探索有问题的查询。您还可以使用 mtools 分析记录的查询以找到高频查询。
第 3 步:创建索引
您的分析应该产生新的索引以改进查询
不要忘记 在后台使用索引构建 来避免集合锁定和系统停机。
第 4 步:使用 稀疏索引 来减小索引的大小
如果您使用稀疏文档,并在查询中大量使用 $exists 关键字,则使用稀疏索引(仅包括包含您的字段的文档)可以最大限度地减少索引大小,从而提高查询性能。
第 5 步:使用 Secondary Preferred 将查询卸载到从服务器
您可能有一个副本集,如果不使用您的奴隶进行读取查询(尤其是报告和搜索操作),这是一种资源浪费。
通过将您的连接字符串更改为次要首选,您的应用程序将尝试在您的主服务器上执行读取查询之前在从服务器上运行读取查询。
底线
使用这些简单的方法,您可以在撞墙之前获得时间和空间。