概念:mysql中的執行計畫指通過explain語法分析sql語句
語法:explain sql語句\g
說明:通過explain分析分析指定sql語句(注:\g表示格式化列印,後面不要加分號)
使用explain執行計畫分析:
select_type - 查詢型別
table - 表名
type - 連線型別
possible_keys - 可能用到的索引
key - 實際用到索引
key_len - 索引長度
rows - 檢索了多少行資料
-> 分析:查詢型別(select_type)
-> 分析:連線所使用的型別(type)
這一列的常見值有:const、all、range、system、index
1 最好的是 system 一般在表中只有一行記錄的或者查詢系統表的時候出現
2 其次就是 const 一般在使用主鍵索引的時候會出現
3 其其次 range 一般在做範圍查詢的時候會使用,如:...where id <
1004 index 代表可以使用索引做一些優化,一般在查詢表的總行數的時候出現
5 all 一般使用不上索引的時候出現
6 ref 意思是指 通過索引列,可以直接引用到某些資料行
7 eq_ref 意思是指 通過索引列,可以直接引用某1行資料
-> 分析:額外項(extra)
1 index: 是指用到了索引覆蓋,效率非常高
2 using where 是指光靠索引定位不了,還得where判斷一下
extra 中出現以下 2 項意味著 mysql 根本不能使用索引,效率會受到重大影響。應盡可能對此進行優化
1 using temporary
2 表示 mysql 在對查詢結果排序時使用臨時表。常見於排序 order by 和分組查詢 3 group by
4 using filesort
6 可能在記憶體或者磁碟上進行排序
7 mysql 中無法利用索引完成的排序操作稱為「檔案排序」
mysql執行計畫 MySQL 執行計畫
1.執行計畫的定義 什麼是執行計畫 查詢計畫 呢?執行計畫就是一系列的操作步驟。sql是宣告性語言,它只告訴資料庫要查詢什麼,但並不告訴資料庫如何去查。資料庫所要做的就是基於演算法和統計資訊計算出一條最佳的訪問路徑。這個工作是由優化器來完成的。優化器會比較不同的執行計畫,然後選擇其中最優的一套。2....
mysql 生成執行計畫 MySQL執行計畫
和很多其他關係型資料庫不通,mysql並不會在生成查詢位元組碼來執行查詢。mysql生成查詢的一棵指令樹,然後通過儲存引擎執行完成這棵指令樹並返回結果。最終的執行計畫包含了重構查詢的全部資訊。如果某個查詢執行explain extended 之後,在執行show warnings,就可以看到重構出的...
mysql 查詢執行計畫 MySql執行計畫的檢視
一。什麼是資料庫執行計畫 利用乙個sql語句,你可能要server取出所有news表中的資訊.當server收到的這條sql的時候,第一件事情並不是解析它.如果這條sql沒有語法錯誤,server才會繼續工作.server會決定最好的計算方式.server會選擇,是讀整個news表好呢,還是利用索引...