create
table employee
( eid int auto_increment,
ename varchar(32),
age int,
salary float,
mid int,
primary
key(eid),
key(ename, age)
);create
table manager
( mid int,
mname varchar(32),
primary
key(mid)
);
1.type為all,表示掃瞄全表
explain select * from employee;
2.type為index,表示掃瞄全索引
explain select id from employee;
3.type為const,表示查詢結果為乙個常量
explain select * from employee where id = 5;
4.type為range,表示掃瞄乙個範圍。常見於between and、<、>,in等查詢
explain select * from employee where id between 10
and20;
5.type為eq_ref,表示唯一索引掃瞄
explain select * from employee, manager where employee.mid = manager.mid;
6.type為ref,表示非唯一索引掃瞄。組合索引最左匹配
explain select * from employee where ename = "lisi";
explain執行計畫
sql執行計畫 id 用來看查詢了幾次,或者有幾個select。但是這個不一定準確,因為 select from a inner join b on a.id b.id 這個語句有乙個select,但是實際上查詢了兩個表。因此還是要看查詢了幾張表 包括衍生表 type 這個字段用來描述本次查詢的效能...
explain執行計畫
id id列的編號是select的序號,有幾個select就有幾個id,並且id的順序是按select出現的順序增長的。id列越大執行優先順序越高,id相同則從上往下執行,id為null最後執行 select type 表示對應行是簡單還是複雜查詢 簡單查詢,查詢不包含子查詢和union prima...
MySQL 執行計畫EXPLAIN
mysql 提供了乙個 explain 命令,它可以對 select 語句進行分析,並輸出 select 執行的詳細資訊,以供開發人員針對性優化。使用explain這個命令來檢視乙個這些sql語句的執行計畫,檢視該sql語句有沒有使用上了索引,有沒有做全表掃瞄,這都可以通過explain命令來檢視。...