关注 MongoDB 性能的 5 个步骤

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

您是否在 MongoDB 设置中遇到一些性能问题?

在这种情况下,请按照以下步骤为您的系统提供一些急救,并为长期架构(例如分片)获得一些空间。

第 1 步:启用慢速查询

获取有关系统行为和性能瓶颈的情报。通常慢查询和你的性能瓶颈之间有很高的相关性,所以使用以下方法来启用你的系统分析收集:


 db.setProfilingLevel(1, 100);

第 2 步:使用解释

使用 explain 探索有问题的查询。您还可以使用 mtools 分析记录的查询以找到高频查询。

第 3 步:创建索引

您的分析应该产生新的索引以改进查询

不要忘记 在后台使用索引构建 来避免集合锁定和系统停机。

第 4 步:使用 稀疏索引 来减小索引的大小

如果您使用稀疏文档,并在查询中大量使用 $exists 关键字,则使用稀疏索引(仅包括包含您的字段的文档)可以最大限度地减少索引大小,从而提高查询性能。

第 5 步:使用 Secondary Preferred 将查询卸载到从服务器

您可能有一个副本集,如果不使用您的奴隶进行读取查询(尤其是报告和搜索操作),这是一种资源浪费。

通过将您的连接字符串更改为次要首选,您的应用程序将尝试在您的主服务器上执行读取查询之前在从服务器上运行读取查询。

底线

使用这些简单的方法,您可以在撞墙之前获得时间和空间。