mongodb 性能篇

Posted 一夕如环

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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监控接口

以上是关于mongodb 性能篇的主要内容,如果未能解决你的问题,请参考以下文章

练习 MongoDB 操作 —— 索引篇

运维学python之爬虫中级篇MongoDB

数据库高可用和分区解决方案-MongoDB 篇

每天一篇,学习业内领先的NoSQL数据库=》MongoDB

NodeJS学习笔记之MongoDB模块

详解Java工程师偏爱的大数据工具:MongoDB篇