如何对 MongoDB 进行性能优化(五个简单步骤)_MongoDB

MongoDB 一直是最流行的 NoSQL,而根据 DB-Engines Ranking 最新的排行,时下 MongoDB 已经击败 PostgreSQL 跃居数据库总排行的第四位,仅次于 Oracle、MySQL 和 Microsoft SQL Server,此文中总结了如何对 MongoDB 进行性能调优.

大家在使用MongoDB的时候有没有碰到过性能问题呢?这里总结了MongoDB性能优化的五个步骤,希望能够有所帮助。

第一步:找出慢语句

一般来说查询语句太慢和性能问题瓶颈有着直接的关系,所以可以用MongoDB的性能分析工具来找出这些慢语句:

db.setProfilingLevel(1, 100);

第二步:使用explain分析

通过使用explain来对这些慢语句进行诊断。此外还可以mtools来分析日志。

第三步:创建索引

分析完之后需要创建新的索引(index)来提升查询的性能。别忘了在MondoDB中可以在后台创建索引以避免collections 锁和系统崩溃。

第四步:使用稀疏索引来减少空间占用

如果使用sparse documents,并重度使用关键字$exists,可以使用sparse indexes来减少空间占用提升查询的性能。

第五步:读写分离

如果读写都在主节点的话,从节点就一直处在空置状态,这是一种浪费。对于报表或者搜索这种读操作来说完全可以在从节点实现,因此要做的是在connection string中设置成secondarypreferred。

小总结

这些方法虽然能够起一定的作用,但最主要的目的还是为架构上的提升争取点时间罢了。

好了,以上所述就是本文的全部内容,希望对大家学习MongoDB 进行性能优化有所帮助。

时间: 2024-10-02 10:52:24

如何对 MongoDB 进行性能优化(五个简单步骤)_MongoDB的相关文章

MongoDB查询性能优化验证及验证_MongoDB

结论: 1. 200w数据,合理使用索引的情况下,单个stationId下4w数据.mongodb查询和排序的性能理想,无正则时client可以在600ms+完成查询,qps300+.有正则时client可以在1300ms+完成查询,qps140+. 2. Mongodb的count性能比较差,非并发情况下client可以在330ms完成查询,在并发情况下则需要1-3s.可以考虑估算总数的方法,http://blog.sina.com.cn/s/blog_56545fd30101442b.htm

ASP.NET程序性能优化五则

asp.net|程序|性能|优化 一.使用存储过程: 1.性能方面:存储过程提供了许多标准sql语言中所没有的高级特性.其传递参数和执行逻辑表达式的功能,有助于应用程序设计者处理复杂任务.另外,存储过程存储在本地服务器上,减少了执行该过程所需的网络传输宽带和执行时间.(存储过程已经对sql语句进行了预编译,所以其执行速度比在程序里执行sql语句快很多) 2.程序结构方面:从程序的可扩展性看,使用存储过程会对程序以后的修改带来方便.比如数据库的结构改变了,只需修改相对应的存储结构,和程序中的调用部

无线WLAN网络测试的五个简单步骤分享

在上篇文章跟各位网友分享"如何解决无线路由器网络自动断线?"了,相信大家对于无线WLAN的各个方面大家应该都有一些了解了.那么对于无线WLAN测试,有哪些判断标准呢?可能对大家来说都还有一些不清楚.那么本文将为大家列出5个简单的步骤帮助您来做好无线WLAN网络测试的问题. 无线WLAN测试 1.信道测试 与布线测试不同,信号强度.噪声强度.信噪比是信道测试中最重要的指标,无线传输的模式是微波传输,信号强度的测试是验证信号衰减的状态,微波衰减的强弱与距离.障碍物屏蔽.AP的发射功率等因素

mongodb中使用distinct去重的简单方法_MongoDB

MongoDB的destinct命令是获取特定字段中不同值列表.该命令适用于普通字段,数组字段和数组内嵌文档. mongodb的distinct的语句: 复制代码 代码如下: db.users.distinct('last_name') 等同于 SQL 语句: 复制代码 代码如下: select DISTINCT last_name from users 表示的是根据指定的字段返回不同的记录集. 一个简单的实例: // > db.addresses.insert({"zip-code&qu

MongoDB性能优化及监控_MongoDB

MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 一.索引 MongoDB 提供了多样性的索引支持,索引信息被保存在system.indexes 中,且默认总是为_id创建索引,它的索引使用基本和MySQL 等关系型数据库一样.其实可以这样说说,索引是凌驾于数据存储系统之上的另一层系统,所以各种结构迥异的存

MongoDB · 特性分析 · 网络性能优化

从 C10K 说起 对于高性能即时通讯技术(或者说互联网编程)比较关注的开发者,对C10K问题(即单机1万个并发连接问题)应该都有所了解.『C10K』概念最早由 Dan Kegel 发布于其个人站点,即出自其经典的<The C10K problem>一文[1]. 于是FreeBSD推出了kqueue,Linux推出了epoll,Windows推出了IOCP.这些操作系统提供的功能就是为了解决C10K问题. 常用网络模型 方案 名称 接受连接 网络 IO 计算任务 1 thread-per-co

浅析Mongodb性能优化的相关问题_MongoDB

前言 如何能让软件拥有更高的性能?我想这是一个大部分开发者都思考过的问题.性能往往决定了一个软件的质量,如果你开发的是一个互联网产品,那么你的产品性能将更加受到考验,因为你面对的是广大的互联网用户,他们可不是那么有耐心的.严重点说,页面的加载速度每增加一秒也许都会使你失去一部分用户,也就是说,加载速度和用户量是成反比的.那么用户能够接受的加载速度到底是多少呢? 如图,如果页面加载时间超过10s那么用户就会离开,如果1s–10s的话就需要有提示,但如果我们的页面没有提示的话需要多快的加载速度呢?是

数据库性能优化:五招让IT反败为胜

当数据库的性能变得糟糕时,IT人员能扭转局面. 生产数据库的性能会随着业务和数据的增长而严重迟钝.每一个关键数据库性能的降低都可能会导致全面的业务损失. 从技术上讲,性能优化可以从许多不同的层次下手应用程序可以优化,数据库可以调整,或建立新的系统架构.但是,在生产中,这些问题往往会由IT运维来解决,采取某些对系统破坏性最低的措施实现提速. 以下是IT专业人员对付性能下降问题的一些新方法:但是,必须首先达成共识:为什么应该由IT人说了算? 数据库管理员和开发人员有许多方法可以实现数据库性能调优.他

秋色园QBlog技术原理解析:性能优化篇:数据库文章表分表及分库减压方案(十五)

文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 3: 秋色园QBlog技术原理解析:UrlRewrite之无后缀URL原理(三) --介绍如何实现无后缀URL 4: 秋色园QBlog技术原理解析:UrlRewrite之URL重定向体系(四) --介绍URL如何定位到处理程序 5: 秋色园QBlog技术原理解析:Module之页面基类设计(五) --介绍创建