`
m635674608
  • 浏览: 4905492 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

MongoDB 性能优化五个简单步骤

 
阅读更多

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

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

第一步:找出慢语句 

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

Java代码 
  1. db.setProfilingLevel(1100);  


第二步:使用explain分析 

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

第三步:创建索引 

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

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

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

第五步:读写分离 

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

小结 

这些方法虽然能够起一定的作用,但最主要的目的还是为架构上的提升争取点时间罢了。 
原文链接:5 Steps to Take Care of Your MongoDB Performance 

分享到:
评论

相关推荐

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

    这里总结了MongoDB性能优化的五个步骤,希望能够有所帮助。 第一步:找出慢语句 一般来说查询语句太慢和性能问题瓶颈有着直接的关系,所以可以用MongoDB的性能分析工具来找出这些慢语句: db.setProfilingLevel

    深入云计算 MongoDB管理与开发实战详解pdf.part1

    《深入云计算(MongoDB管理与开发实战详解)》系统全面的介绍了MongoDB开发、管理、维护和性能优化等方方面面。详细而深入,对MongoDB的开发和管理方法进行了详细的讲解,也对MongoDB的工作机制进行了深入的探讨。注重...

    深入云计算 MongoDB管理与开发实战详解pdf.part2

    《深入云计算(MongoDB管理与开发实战详解)》系统全面的介绍了MongoDB开发、管理、维护和性能优化等方方面面。详细而深入,对MongoDB的开发和管理方法进行了详细的讲解,也对MongoDB的工作机制进行了深入的探讨。注重...

    sparrowql:声明式MongoDB聚合

    / sparrowql 声明式MongoDB聚合。 | | 包括什么? 仅在需要时自动进行$lookup 声明式管道生成 针对多集合查询进行了优化 ...假设您有一个简单的数据库模型: 和一些固定装置: const blogs = [ { _id : 0 , owne

    大数据测试——精选推荐.pdf

    优化配置 性能测试基础准备 性能测试基础准备 在⼤数据性能测试时,需要准备相关的基础⼯作,如下: 数据准备,我们需要在不同的节点准备什么量级数据? ⽇志预估,在测试过程中,可能会⽣成多⼤的⽇志,⽇志的可能...

    关系型和非关系型数据库的区别? 关系型数据库的优点 容易理解,因为它采用了关系模型来组织数据 可以保持数据的一致性 数据更

    优化器(主要对执行的 SQL 优化选择最优的执行方案方法) 执行器(执行时会先看用户是否有执行权限,有才去使用这个引擎提供的接口)-> 去引擎层获取数据返回(如果开启查询缓存则会缓存查询结果) 索引相关 3、...

    mysql面试题-关系模型

    优化器(主要对执行的 SQL 优化选择最优的执行方案方法) 执行器(执行时会先看用户是否有执行权限,有才去使用这个引擎提供的接口)-> 去引擎层获取数据返回(如果开启查询缓存则会缓存查询结果) 索引相关 3、...

    muhammadfaizkhan

    对超过5位以上的内部网络功能人员进行了培训,包括有关如何独立进行较小更新或更改的步骤。 修复了来自现有网站的错误,并实施了可显着提高Web功能和速度的增强功能。 语言: 工作经历 : LinkYou Inc 前端开发...

    网络架构师148讲视频课程

    │ 第56节:Varnish对性能的提升和优化.avi │ 第57节:应用上Varnish后的体系结构.avi │ 第58节:Memcached入门和缓存的含义.avi │ 第59节:Memcached基本的工作原理.avi │ 第60节:Memcached基本的操作命令.avi...

    Node与Express开发.pdf

    18 3.3 初始步骤 ................................................................................................................................... 18 3.3.1 视图和布局 ..................................

Global site tag (gtag.js) - Google Analytics