zoukankan      html  css  js  c++  java
  • 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监控接口
  • 相关阅读:
    Android Layout XML属性
    linux]ubuntu挂载U盘
    Android之NDK开发
    Android 创建永不Kill的Service
    如何编写可移植的c/c++代码
    Android写日志文件类
    Android Activity去除标题栏和状态栏
    linux .bash_profile和.bashrc的什么区别
    ListView.setOnItemClickListener、setOnCreateContextMenuListener无效 为什么
    WCF 第四章 绑定 使用队列技术进行通信
  • 原文地址:https://www.cnblogs.com/hodge01/p/6125264.html
Copyright © 2011-2022 走看看