美文网首页
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 建立索引

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