美文网首页
mongodb调优 找到慢query 建立索引

mongodb调优 找到慢query 建立索引

作者: 邪恶的奥伯伦 | 来源:发表于2019-02-15 16:32 被阅读0次

mongodb 每个collection创建之后默认都只会有_id这个索引, 当系统执行mongodb 响应时间越来越慢 或者说 从建好表一开始 就可以考虑建立索引的问题了.

数据库的查询如果没有建立正确的索引 查询的复杂度将会很高, 尤其是在多个query条件下 对系统压是相当大的.

首先 先打开profiling 记录执行慢的query
Profiling一共分为3个级别:
0 - 不开启。
1 - 记录慢命令 (默认为>100ms)
3 - 记录所有命令

db.setProfilingLevel(1)
db.getProfilingLevel()

profiling 是以db为单位的, 打开profiling之后 在该db下, 除了原来记录索引的表system.indexes之外, 会建立一个system.profile 这样的一个collection, 里面会记录所有 query时间过慢的操作.

这些慢操作的产生 最直接的原因就是没有建立正确的索引, 然后 通过下面命令创建

db.collection.getIndexes()
db.collection.createIndex({'key1':1, 'key2':1})

跟mongodb的其他参数一样, 这里的1表示 升序排列, 如果我们经常需要查询的key是以新的为主的话 使用降序 key:-1效率会更高, 比如 date字段

创建 索引之后, 可以把整个system.profile 直接删除掉 或者查看有无最新的记录产生, 用于鉴别是否 慢query的问题解决掉了

相关文章

  • mongodb调优 找到慢query 建立索引

    mongodb 每个collection创建之后默认都只会有_id这个索引, 当系统执行mongodb 响应时间...

  • 55-MySQL索引优化与查询优化

    一、数据库调优 1.1、调优维度 1、索引失效、没有充分利用到索引——索引建立 2、关联查询太多JOIN(设计缺陷...

  • Mongodb简单优化

    MongoDB WiredTiger引擎调优技巧 调优Cache Size WiredTiger最重要的调优参数就...

  • 性能调优之SQL优化

    性能调优之SQL优化如何加快查询速度?1、升级硬件2、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的...

  • Mysql调优

    金字塔 慢查询日志 索引 长字段调优 额外创建一个字段,存储长字段的hash值, 并创建索引INSERT INTO...

  • MySQL性能调优(五)Query优化--索引优化

    更加前面的文章可以知道,索引可以大幅提高查询和排序(排序字段为索引字段)的效率。但是如果索引建立的不合适,可能会占...

  • 搜索引擎Lucene(7):索引性能优化

    1、性能调优 1.1、索引-搜索时延调优 索引一搜索时延是指从添加、更新或删除索引中的文档开始,直到用户在搜索中看...

  • MongoDB索引与优化详解

    在MongoDB中通过建立索引可以进行高效的查询,如果没有索引MongoDB将会扫描整个集合与查询的条件进行匹配,...

  • MySQL索引优化分析

    1、SQL性能下降的原因 数据太多:考虑分库分表关联了太多的表:SQL优化没有充分利用到索引:建立索引服务器调优及...

  • 【原创】【译】MongoDB3.0.6 索引

    概述 索引能提高查询的效率,MongoDB在你建立集合的时候,会自动帮你给_id字段建立索引。用createInd...

网友评论

      本文标题:mongodb调优 找到慢query 建立索引

      本文链接:https://www.haomeiwen.com/subject/ddfpeqtx.html