mongodb 性能篇

一、  索引及其优化

  1. 索引的概述

    1. 数据库的索引好比是一本书前面的目录,能加快数据查询的速度。
    2. 适当的地方增加索引,不合理的地方删除次优索引,能优化性能较差的应用。
  2. 索引的操作
    1. 基础索引:db.ken.ensureIndex({age:1}) //在列age上创建索引

1           Name为_id_的是系统索引,不能删除。

  1. 静默方式创建索引:db.ken.ensureIndex({x:1},{background:true}); //后台创建
  2. 文档索引:嵌入式文档用不上索引
  3. 组合索引:多个条件一起
  4. 唯一索引:声明唯一性,就是不能插入此条件相同的数据
  5. 强制使用索引:hint({_id:1})
  6. 删除索引:db.ken.dropIndex()
  7. 重建索引:db.ken.reIndex()
  8. 用explain查看计划的执行方式

1           Millis字段可以看到耗时情况,indexBound可以看到是否在用索引,n表示返回的文档数量,nscaned表示扫描的文档数量。

2           如果信息不全,可以尝试用其他版本的客户端。

  1. 优化器:Profiler

    1. 开启功能。

1           可通过启动的时候加参数:-profiler=1

2           执行命令:db.setProfilingLevel(1)

  1. 查询记录:db.system.profiler.find()
  2. 性能优化概述
    1. 性能优化原则:一次修改一个参数
    2. 影响性能的参数:操作系统、网络、硬件、应用服务器、应用程序、数据库、查询语句
  3. 常用优化方案
    1. 创建缩索引:写少读多的时候
    2. 限定返回条数:limit
    3. 查询只用到的字段
    4. 采用Capped Colletion
    5. 采用存储过程
    6. 强制使用索引
    7. 使用Profiler

二、  性能监控

  1. Mongosniff工具
  2. Mongostat工具
  3. 使用db.serverStatus()
  4. 使用db.stats()
  5. http监控接口
时间: 2024-10-29 19:07:17

mongodb 性能篇的相关文章

MongoDB性能监控

1.mongostat 查看运行中的mongodb实例的统计信息 2.MMS(MongoDB Monitoring Service) 1)安装 rpm -U mongodb-mms-monitoring-agent-2.1.4.51-1.i386.rpm 2)配置 访问https://mms.mongodb.com/settings 选择monitoring agent下对应的os ,按照说明配置即可 完成后启动mms:service mongodb-mms-monitoring-agent s

第四部分 性能篇 第十一章 MongoDB 性能监控

声明:该文章主要来自<MongoDB实战>一书内容,主要想通过该书学习MongoDB的相应知识,加深理解,故写在自己的博文当中,作为记录在最后的章节中,会有一个自己集合MongoDB数据库应用的JavaEE的web应用. 1.MongoStat 此工具可以快速的查看某组运行中的MongoDB实例的统计信息,用法如下: [[email protected] bin]# ./mongostat connected to: 127.0.0.1 insert query update delete g

mongoDB入门篇

0)mongo :通过客户端连接mongodb数据库 1)show dbs ---显示当前所创建的数据库 2)use test ---创建或切换数据库 3)db.dropDatabase() --删除当前数据库 3)show collections: 显示当前数据库所创建的集合(表) 4)exit:退出mongodb客户端 5)mongodb的安装: 一.Mogodb开篇:基础入门增删改查 MongoDB的优点: 1)内置Sharding:提供基于Range的Auto Sharding机制:一个

MongoDB性能优化五个简单步骤

大家在使用MongoDB的时候有没有碰到过性能问题呢?这里总结了MongoDB性能优化的五个步骤,希望能够有所帮助. 第一步:找出慢语句 一般来说查询语句太慢和性能问题瓶颈有着直接的关系,所以可以用MongoDB的性能分析工具来找出这些慢语句: db.setProfilingLevel(1, 100); 第二步:使用explain分析 通过使用explain来对这些慢语句进行诊断.此外还可以mtools来分析日志. 第三步:创建索引 分析完之后需要创建新的索引(index)来提升查询的性能.别忘

使用PowerShell调用MTools分析MongoDB性能并发送邮件

使用PowerShell调用MTools分析MongoDB性能并发送邮件 问题描述: 在MongoDB日常运维中,经常需要查看连接数的趋势图.慢查询.Overflow语句.连接来源. 解决方案: 1. 将Windows备份机目录挂载到MongoDB本地目录下,将LogRotate切换后的最新一个日志拷贝到备份目录. 参考博文:<在Linux下挂载Windows系统共享目录> 2. 在Windows服务器上安装Mtools. 参考博文:<在64位Windows Server 2008 R2

Android 性能篇 -- 带你领略Android内存泄漏的前世今生

基础了解 什么是内存泄漏? 内存泄漏是当程序不再使用到的内存时,释放内存失败而产生了无用的内存消耗.内存泄漏并不是指物理上的内存消失,这里的内存泄漏是指由程序分配的内存但是由于程序逻辑错误而导致程序失去了对该内存的控制,使得内存浪费. Java 内存分配策略 Java 程序运行时的内存分配策略有三种,分别是 静态分配 . 栈式分配 和 堆式分配 ,对应的三种存储策略使用的内存空间主要分别是 静态存储区(也称方法区) . 栈区 和 堆区 . ?? 静态存储区(方法区):主要存放 静态数据 . 全局

【朝花夕拾】Android性能篇之(六)Android进程管理机制

前言        Android系统与其他操作系统有个很不一样的地方,就是其他操作系统尽可能移除不再活动的进程,从而尽可能保证多的内存空间,而Android系统却是反其道而行之,尽可能保留进程.Android这样设计有什么优势呢?又是通过怎样的方法来管理这些被保留的进程的呢?Android用户又该如何正确使用手机从而更好发挥Android系统所特有的优势呢?本文将一一为您解开这些谜团.        一.Android进程管理的特殊设计 Linux系统对进程的管理方式是一旦进程活动停止,系统就

011.MongoDB性能监控

一 MongoDB 监控 1.1 监控概述 MongoDB自带了mongostat 和 mongotop 这两个命令来监控MongoDB的运行情况.这两个命令用于处理MongoDB数据库变慢等等问题非常有用,能详细的统计MongoDB当前的状态信息.除此之外,还可以用db.serverStatus().db.stats().开启profile功能通过查看日志进行监控分析. 1.2 模拟插入数据 1 [[email protected] ~]# mongo --host 172.24.8.71 -

node.js操作数据库之MongoDB+mongoose篇

前言 node.js的出现,使得用前端语法(javascript)开发后台服务成为可能,越来越多的前端因此因此接触后端,甚至转向全栈发展.后端开发少不了数据库的操作.MongoDB是一个基于分布式文件存储的开源数据库系统.本文为大家详细介绍了如何用node.js + mongoose 玩转MongoDB.希望能帮到有需要的人. 由于我用Mac开发,以下所有操作都是在Mac下进行. 一. 环境搭建 安装Node.js 有 node 环境的可以跳过. nodejs官网提供了 macOS 安装包,直接