# 執行計畫:乙個預估sql語句執行的時間的操作
# 關鍵字:explain
# 雖然有mysql優化的措施避免一些不能命中索引的方式,
# 但是最後還是要看sql語句的執行時間,時間短就是好的。
# 執行計畫是以最壞的打算進行預估sql語句執行的時間,所以只能作為參考。
# 以後拿到乙個sql語句的時候,先進行執行計畫。
# explain select * from userinfo;
id select_type table partitions type possible_keys key key_len ref rows filtered extra
id: 查詢順序的標識
select_type: 查詢的型別
******: 簡單查詢
primary: 最外層查詢
subquery:對映的子查詢
drived: 子查詢
union:聯合
union result:使用聯合的結果
table: 訪問的表
partitions:
type: 查詢的訪問方式
all<
index
< range < index_merge < ref_or_null < ref < eq_ref < const/system
all: 從前往後,全表掃瞄
select
*from userinfo where uname =
'alex'
; 特別的:select
*from userinfo where uname =
'alex'
limit1;
這句特別快,雖然explain後,type也是all,但這句是找第乙個後就不會往後繼續掃瞄了
index: 全索引掃瞄
range: 指定索引範圍掃瞄
ps: between
and/in/
>=
<
<= 特別注意!=和》
index_merge: 索引合併
ref_or_null:
ref: 使用索引查詢乙個或多個值
eq_ref: 連表時條件on用primary
key或者unique
const: 常量,最多乙個匹配行
system: 僅乙個匹配行
possible keys: 可能使用的索引
key: 真實使用的索引
key_len: 索引使用的長度
ref:
rows: 找到所需的行所讀取的行數
filtered:
extra:
Mysql之執行計畫
1.explain分析sql語句 例如 explain select from blog info bi inner join uam view unit account uua on bi.account instance id uua.account instance id where bi.i...
mysql 之執行計畫
原文 執行計畫,簡單的來說,是sql在資料庫中執行時的表現情況,通常用於sql效能分析,優化等場景。在mysql中使用 explain 關鍵字來檢視。如下所示 1.查詢t base user select from t base user where name andyqian 2.檢視上述語句的執...
mysql執行計畫 MySQL 執行計畫
1.執行計畫的定義 什麼是執行計畫 查詢計畫 呢?執行計畫就是一系列的操作步驟。sql是宣告性語言,它只告訴資料庫要查詢什麼,但並不告訴資料庫如何去查。資料庫所要做的就是基於演算法和統計資訊計算出一條最佳的訪問路徑。這個工作是由優化器來完成的。優化器會比較不同的執行計畫,然後選擇其中最優的一套。2....