MySQL SQL執行計畫

2021-10-10 21:48:36 字數 515 閱讀 1207

sql的執行:

通訊階段

查詢快取

解析器進行驗證解析,基於語法戒心和詞法解析得到解析樹

優化器,優化執行階段找到sql的最優執行方式

執行器執行計畫

用explain或者desc檢視sql的執行計畫

執行計畫引數:

id:sql執行的順序,值大的先執行,id一樣的話,按照順序從上至下執行

select_type:執行型別,包括下面幾種

table:查詢涉及到的表或表的別名

type:執行資料獲取的方式,取值及排序system>const>eq_ref>ref>range>index>all

partitions:查詢資料的分割槽資訊

possible_keys:可能使用到的索引

key:真正使用到的索引

key_len:索引使用的包含的列長度

rows:估算找到資料需要讀取的行數

filtered:返回結果的行數佔讀到行數(rows)的百分比

extra

MySQL SQL執行計畫分析

當我們的系統上線後資料庫的記錄不斷增加,之前寫的一些sql語句或者一些orm操作效率變得非常低。我們不得不考慮sql優化,sql優化大概是這樣乙個流程 1.定位執行效率低的sql語句 定位 2.分析為什麼這段sql執行的效率比較低 分析 3.最後根據第二步分析的結構採取優化措施 解決 而explai...

Mysql SQL執行錯誤 1136

情況 在插入資料時可能會遇到這種情況 原因 插入時的資料個數與表中的字段個數不一致 解決方法 檢查表中的字段數與 中所插入的資料字段數是否一致 例如 以下為salary表中結構 雖然actincome中設定了空值,且是根據income outcome的儲存過程得出的結果字段,但 不能為 以下為錯誤 ...

mysql sql執行慢 分析過程

為了驗證select 1 與 select 1 from tablename 與 select from tablename的執行效率,需要測試一下各自執行的時間。於是總結一下,檢視mysql語句執行時間的方法。方法一 show profiles。1.show profiles是5.0.37之後新增...