在工作中,我們用於捕捉效能問題最常用的就是開啟慢查詢,定位執行效率差的sql,那麼當我們定位到乙個sql以後還不算完事,我們還需要知道該sql的執行計畫,比如是全表掃瞄,還是索引掃瞄,這些都需要通過explain去完成。explain命令是檢視優化器如何決定執行查詢的主要方法。可以幫助我們深入了解mysql的基於開銷的優化器,還可以獲得很多可能被優化器考慮到的訪問策略的細節,以及當執行sql語句時哪種策略預計會被優化器採用。需要注意的是,生成的qep並不確定,它可能會根據很多因素發生改變。mysql不會將乙個qep和某個給定查詢繫結,qep將由sql語句每次執行時的實際情況確定,即便使用儲存過程也是如此。儘管在儲存過程中sql語句都是預先解析過的,但qep仍然會在每次呼叫儲存過程的時候才被確定。
explain出來的資訊有10列,分別是id、select_type、table、type、possible_keys、key、key_len、ref、rows、extra,下面對這些字段出現的可能進行解釋:
總結:• explain不會告訴你關於觸發器、儲存過程的資訊或使用者自定義函式對查詢的影響情況
• explain不考慮各種cache
• explain不能顯示mysql在執行查詢時所作的優化工作
• 部分統計資訊是估算的,並非精確值
• expalin只能解釋select操作,其他操作要重寫為select後檢視執行計畫。
SQL優化工具
sql語句是對資料庫進行操作的惟一途徑,對資料庫系統的效能起著決定性的作用。對於同一條件下的sql語句寫法有很多,其中一些寫法往往對效能又有很大影響。但是每個人掌握sql語言的水平不同,如何才能保證寫出高效能的sql呢?針對這種情況,人工智慧自動sql優化工具應運而生。現在我就向大家介紹這樣一款工具...
SQL優化工具
使用說明 解決依賴 python3 ubuntu sudo apt get install python3 python3 pip 如果兩個包都有安裝可跳過此步驟 centos sudo yum install python36 python36 pip 如果兩個包都有安裝可跳過此步驟 執行啟動指令...
SQL優化工具
相關鏈結執行sql語句 耗時34秒左右 linux系統下的測試 3494 note 第1步 對sql解析優化之後得到的sql select ca id as ca id sub id as sub id ca number as ca number sub number as sub number ...