亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mongodb慢查詢分析

發布時間:2020-08-08 22:03:00 來源:ITPUB博客 閱讀:152 作者:kunlunzhiying 欄目:關系型數據庫

1.用慢查詢日志(system.profile)找到超過500ms的語句 

mongos>db.setProfilingLevel(1,500)

2.然后再通過.explain()解析影響行數,分析為什么超過500ms【即看執行計劃】 參見下文評論鏈接

3. 決定是否是缺失索引導致


#查看狀態:級別和時間

PRIMARY> db.getProfilingStatus()

{ "was" : 1, "slowms" : 200 }

#查看級別

PRIMARY> db.getProfilingLevel()

1

#設置級別

PRIMARY> db.setProfilingLevel(2)

{ "was" : 1, "slowms" : 100, "ok" : 1 }

#設置級別和時間

PRIMARY> db.setProfilingLevel(1,200)

{ "was" : 2, "slowms" : 100, "ok" : 1 }

 Profiling級別說明

參數:

0:關閉,不收集任何數據。

1:收集慢查詢數據,默認是100毫秒。

2:收集所有數據

注意:

  1  以上要操作要是在test集合下面的話,只對該集合里的操作有效,要是需要對整個實例有效,則需要在所有的集合下設置或則在開啟的時候開啟參數

  2 每次設置之后返回給你的結果是修改之前的狀態(包括級別、時間參數)


2:不通過mongo shell


mongoDB啟動的時候


mongod --profile=1  --slowms=200


或則在配置文件里添加2行:

profile = 1

slowms = 200

3:關閉Profiling

# 關閉

PRIMARY> db.setProfilingLevel(0)

{ "was" : 1, "slowms" : 200, "ok" : 1 }


4:修改“慢查詢日志”的大小

#關閉Profiling

PRIMARY> db.setProfilingLevel(0)

{ "was" : 0, "slowms" : 200, "ok" : 1 }

#刪除system.profile集合

PRIMARY> db.system.profile.drop()


慢查詢(system.profile)分析 


 3.2: 分析

如果發現 millis 值比較大,那么就需要作優化。

1  如果nscanned數很大,或者接近記錄總數(文檔數),那么可能沒有用到索引查詢,而是全表掃描。

2  如果 nscanned 值高于 nreturned 的值,說明數據庫為了找到目標文檔掃描了很多文檔。這時可以考慮創建索引來提高效率。


‘type’的返回參數說明:


COLLSCAN  #全表掃描

IXSCAN  #索引掃描

FETCH  #根據索引去檢索指定document

SHARD_MERGE  #將各個分片返回數據進行merge

SORT  #表明在內存中進行了排序(與老版本的scanAndOrder:true一致)

LIMIT  #使用limit限制返回數

SKIP  #使用skip進行跳過

IDHACK  #針對_id進行查詢

SHARDING_FILTER #通過mongos #對分片數據進行查詢

COUNT #利用db.coll.explain().count()之類進行count運算

COUNTSCAN #count不使用Index進行count時的stage返回

COUNT_SCAN #count使用了Index進行count時的stage返回

SUBPLA #未使用到索引的$or查詢的stage返回

TEXT #使用全文索引進行查詢時候的stage返回

PROJECTION #限定返回字段時候stage的返回


對于普通查詢,我們最希望看到的組合有這些:

Fetch+IDHACK

Fetch+ixscan

Limit+(Fetch+ixscan)

PROJECTION+ixscan

SHARDING_FILTER+ixscan

不希望看到包含如下的type:


COLLSCAN(全表掃),SORT(使用sort但是無index),不合理的SKIP,SUBPLA(未用到index的$or)

對于count查詢,希望看到的有:

COUNT_SCAN

不希望看到的有:

COUNTSCAN


4  性能(explain) 參考mongodb 官網鏈接 見下文評論

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江都市| 霍邱县| 内丘县| 望江县| 中江县| 兰西县| 深水埗区| 开江县| 祁门县| 四平市| 和硕县| 搜索| 深水埗区| 灵川县| 锡林郭勒盟| 乡城县| 和林格尔县| 宾川县| 深水埗区| 葫芦岛市| 南雄市| 浦北县| 纳雍县| 德保县| 毕节市| 泸溪县| 从江县| 东平县| 十堰市| 尉氏县| 同江市| 临安市| 乐东| 栾川县| 康保县| 玉树县| 三穗县| 望奎县| 慈利县| 青田县| 揭阳市|