位置: 编程技术 - 正文

MongoDB性能优化及监控(mongodb性能优化方案有哪些?)

编辑:rootadmin

推荐整理分享MongoDB性能优化及监控(mongodb性能优化方案有哪些?),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mongodb效率,mongodb 优化,mongodb优化查询效率,mongodb性能瓶颈,mongodb性能优化方案,mongodb性能优化方案,mongodb性能优化方案有哪些?,mongodb性能调优,内容如对您有帮助,希望把文章链接给更多的朋友!

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

一、索引

MongoDB 提供了多样性的索引支持,索引信息被保存在system.indexes 中,且默认总是为_id创建索引,它的索引使用基本和MySQL 等关系型数据库一样。其实可以这样说说,索引是凌驾于数据存储系统之上的另一层系统,所以各种结构迥异的存储都有相同或相似的索引实现及使用接口并不足为 奇。

1.基础索引

在字段age 上创建索引,1(升序);-1(降序):

_id 是创建表的时候自动创建的索引,此索引是不能够删除的。当系统已有大量数据时,创建索引就是个非常耗时的活,我们可以在后台执行,只需指定“backgroud:true”即可。

2.文档索引

索引可以任何类型的字段,甚至文档:

3. 组合索引

跟其它数据库产品一样,MongoDB 也是有组合索引的,下面我们将在addr.city 和addr.state上建立组合索引。当创建组合索引时,字段后面的1 表示升序,-1 表示降序,是用1 还是用-1 主要是跟排序的时候或指定范围内查询 的时候有关的。

4. 唯一索引

只需在ensureIndex 命令中指定”unique:true”即可创建唯一索引。例如,往表t4 中插入2 条记录:

5.强制使用索引

hint 命令可以强制使用某个索引。

6.删除索引

二、explain执行计划

MongoDB 提供了一个 explain 命令让我们获知系统如何处理查询请求。利用 explain 命令,我们可以很好地观察系统如何使用索引来加快检索,同时可以针对性优化索引。

字段说明:

&#;cursor: 返回游标类型(BasicCursor 或 BtreeCursor)&#;nscanned: 被扫描的文档数量&#;n: 返回的文档数量&#;millis: 耗时(毫秒)&#;indexBounds: 所使用的索引

三、优化器profile

在MySQL 中,慢查询日志是经常作为我们优化数据库的依据,那在MongoDB 中是否有类似的功能呢&#;答案是肯定的,那就是MongoDB Database Profiler。

1.开启profiling功能

有两种方式可以控制 Profiling 的开关和级别,第一种是直接在启动参数里直接进行设置。启动MongoDB 时加上?profile=级别 即可。也可以在客户端调用db.setProfilingLevel(级别) 命令来实时配置,Profiler 信息保存在system.profile 中。我们可以通过db.getProfilingLevel()命令来获取当前的Profile 级别,类似如下操作:

上面profile 的级别可以取0,1,2 三个值,他们表示的意义如下:

1.0 ? 不开启2.1 ? 记录慢命令 (默认为>ms)3.2 ? 记录所有命令

Profile 记录在级别1 时会记录慢命令,那么这个慢的定义是什么&#;上面我们说到其默认为ms,当然有默认就有设置,其设置方法和级别一样有两种,一种是通过添加 ?slowms 启动参数配置。第二种是调用db.setProfilingLevel 时加上第二个参数:

2.查询 Profiling 记录

与MySQL 的慢查询日志不同,MongoDB Profile 记录是直接存在系统db 里的,记录位置system.profile ,所以,我们只要查询这个Collection 的记录就可以获取到我们的 Profile 记录了。列出执行时间长于某一限度(5ms)的 Profile 记录:

MongoDB Shell 还提供了一个比较简洁的命令show profile,可列出最近5 条执行时间超过1ms 的 Profile 记录。

MongoDB性能优化及监控(mongodb性能优化方案有哪些?)

四、常用性能优化方案

1.创建索引

2.限定返回结果数

3.只查询使用到的字段

4.采用capped collection

5.采用Server Side Code Execution

6.使用Hint,强制使用索引

7.采用Profiling

五、性能监控工具

1. mongosniff

此工具可以从底层监控到底有哪些命令发送给了MongoDB 去执行,从中就可以进行分析:以root 身份执行:

然后其会监控位到本地以localhost 监听默认 端口的MongoDB 的所有包请求。

2.Mongostat

此工具可以快速的查看某组运行中的MongoDB 实例的统计信息 字段说明:&#;insert: 每秒插入量&#;query: 每秒查询量&#;update: 每秒更新量&#;delete: 每秒删除量&#;locked: 锁定量&#;qr | qw: 客户端查询排队长度(读|写)&#;ar | aw: 活跃客户端量(读|写)&#;conn: 连接数&#;time: 当前时间

它每秒钟刷新一次状态值,提供良好的可读性,通过这些参数可以观察到一个整体的性能情况。

3. db.serverStatus

这个命令是最常用也是最基础的查看实例运行状态的命令之一。

4.db.stats

下面给大家介绍下mongodb的监控

mongodb可以通过profile来监控数据,进行优化。

查看当前是否开启profile功能用命令

db.getProfilingLevel() 返回level等级,值为0|1|2,分别代表意思:0代表关闭,1代表记录慢命令,2代表全部开始profile功能为

db.setProfilingLevel(level); #level等级,值同上level为1的时候,慢命令默认值为ms,更改为db.setProfilingLevel(level,slowms)如db.setProfilingLevel(1,)这样就更改为毫秒通过db.system.profile.find() 查看当前的监控日志。如:

这里值的含义是

ts:命令执行时间info:命令的内容query:代表查询order.order: 代表查询的库与集合reslen:返回的结果集大小,byte数nscanned:扫描记录数量nquery:后面是查询条件nreturned:返回记录数及用时millis:所花时间

如果发现时间比较长,那么就需要作优化。

比如nscanned数很大,或者接近记录总数,那么可能没有用到索引查询。reslen很大,有可能返回没必要的字段。nreturned很大,那么有可能查询的时候没有加限制。

mongo可以通过db.serverStatus()查看mongod的运行状态

查看集合记录用

mongostat命令查看运行中的实时统计,表示每秒实时执行的次数

mongodb还提供了一个机遇http的监控页面,可以访问

MongoDB查询性能优化验证及验证 结论:1、w数据,合理使用索引的情况下,单个stationId下4w数据。mongodb查询和排序的性能理想,无正则时client可以在ms+完成查询,qps+。有正则时cl

Mongodb索引的优化 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB索引几乎和关系型数据库的索引

MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划 一、索引MongoDB提供了多样性的索引支持,索引信息被保存在system.indexes中,且默认总是为_id创建索引,它的索引使用基本和MySQL等关系型数据库一样。其

标签: mongodb性能优化方案有哪些?

本文链接地址:https://www.jiuchutong.com/biancheng/312105.html 转载请保留说明!

上一篇:使用zabbix监控mongodb的方法(zabbix 网络监控)

下一篇:SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用方法

  • 实收资本印花税是一年一交吗
  • 汇算清缴研发费用加计扣除优惠明细表
  • 固定资产的进项税额可以抵扣吗
  • 只有增值税专用发票才能勾选抵扣吗
  • 土地摊销全部计入成本吗
  • 收到退所得税款的会计分录
  • 实验室报销发票
  • 房产税从价计征扣除比例
  • 下列支出不可以从其应纳税所得额中扣除的是
  • 资产负债表存货为负数原因
  • 固定资产按月折旧了,还能一次折旧么
  • 小规模纳税人开普票免税
  • 公司库存现金如何存回银行
  • 财政补贴收入是什么
  • 计入资本公积的固定资产转出
  • 施工工人个税怎么计算?
  • 税收编码选错了,发票已经开出去几个月了,还有影响吗
  • 一般纳税人取得小规模纳税人的专票可以抵扣吗
  • 母子公司可以汇资金吗
  • 企业所得税是否有利于调节产业结构
  • 汇算清缴补交所得税的账务处理小企业会计准则
  • 停车管理费什么时候交
  • 每季度财务报表
  • win都是10 怎么办
  • 工程施工怎么结转到成本里
  • 支付借款利息怎么做账
  • 怎么升级鸿蒙系统3.1
  • 编译安装php7
  • 目前光学变焦最大支持多少倍
  • 超额累进税率包括
  • 移动有聊天室平台吗
  • ros call
  • 办理房屋租赁需要的材料
  • 退税的项目有哪些
  • 股东分红会计分录摘要
  • yolov5最新版
  • 补交上年度企业所得税报表怎么填写
  • CV攻城狮入门VIT(vision transformer)之旅——VIT原理详解篇
  • node express安装
  • 毕业设计基于web难还是JAVA
  • 租入厂房需做环保检测吗
  • 增值税多交了五万怎么办
  • 在售楼部帮客户卖房犯法吗
  • 基建期业务招待会议记录
  • 注册资金印花税税率是多少,怎么计算?
  • 使用mysql命令
  • 修改数据库为多个数据
  • 房地产企业增值税预征率
  • 计入委托加工物资成本的消费税
  • 混凝土增值税发票税率
  • 购进材料,已付,材料尚未验收入库
  • 年末资产减值损失可以税前扣除吗
  • 收到加盟费应该怎么做账
  • 投标资质使用费
  • 农产品成本包含所消耗的物资费用
  • 企业印花税率
  • 年度报告应包括哪些
  • 建账有哪几种方法
  • 安装sql server 2008硬件要求
  • SSB(SQLservice Service Broker) 入门实例介绍
  • sqlserver如何查看操作日志
  • winxp开机提示explorer.exe
  • winxp如何访问win10
  • 桌面上的图标不能更改对还是错
  • win8系统如何安装软件
  • Win10预览版怎么变回正式版
  • linux 系统查看
  • 如何在vmware虚拟机中安装macos11.0
  • win8 蓝牙
  • 电脑开机后出现win7画面后一直黑屏
  • unity3d应用开发
  • 图片加载完成再加载
  • css的基础
  • 批处理命令在哪个菜单中
  • jquery示例
  • 音箱海关税
  • 小规模纳税人销售货物税率是多少
  • 税控盘在哪领取
  • 常设机构怎么缴纳所得税
  • 减免所得税额怎么算的
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设