mysql查詢性能優化mysql
explain 分析sql查詢的詳細信息sql
id,select_type,table,type,possible_keys,key,key_len,ref,rows,extra性能優化
id: 查詢表的順序,id數值大表的先查詢。性能
select_type: mysql中select的查詢分爲優化
1.simple 簡單查詢spa
2.subquery 子查詢排序
table: 查詢的表名,若是是連表查詢則會出現兩條查詢詳細信息。索引
type : 訪問類型 all index range ref eq_ref const nullit
1.all 全表掃描,掃描整張table
2.index 先掃描索引,再全表掃描,避免了排序,由於索引是順序的。
3.range 必定範圍掃描索引,再按索引結果去表中找。
4.ref 非惟一索引訪問
5.eq_ref 惟一索引(主鍵索引)訪問
6.const 惟一索引(主鍵索引)訪問時,匹配的只有一條數據。
7.null 在優化的過程當中就已經獲得結果,好比min(index) max(index)
possible_keys: 可能用到的索引
keys: 實際用到的索引
key_len : 索引字段最大可能使用長度,單位是字節
ref:對key索引使用的查找方式 const func null 具體字段 //待查證資料
Extra :
using index 使用了覆蓋索引,直接從索引中獲取數值
using where 使用了where條件過濾
Using temporary 使用了臨時表 好比distinct
Using filesort 沒有使用索引的排序順序
Impossible WHERE noticed after reading const table 查詢條件不可能,直接返回空
Select tables optimized away 直接優化
mysql查詢語句優化
1.一個複雜的查詢拆分紅多個簡單查詢
2.切分查詢,一次大查詢分紅屢次小查詢分批次查詢。
3.分解關聯查詢,