首页 > 代码库 > mysql-explain
mysql-explain
explain各项字段说明:
id: 1
select_type: SIMPLE
table: application_user
partitions: NULL
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 1
filtered: 100.00
Extra: NULL
1.id
代表select 语句的编号, 如果是连接查询,表之间是平等关系, select 编号都是1,从1开始. 如果某select中有子查询,则编号递增.
2.select_type
查询类型
3.possible_key: 可能用到的索引
注意: 系统估计可能用的几个索引,但最终,只能用1个.
4.key: 最终用到的索引
5.key_len: 使用的索引的最大长度
6.type :是指查询的方式, 非常重要,是分析”查数据过程”的重要依据 ,可能的值:
1)all: 意味着从表的第1行,往后,逐行做全表扫描.,运气不好扫描到最后一行.
2)index: 比all性能稍好一点,扫描所有的索引节点。
3)range: 意思是查询时,能根据索引做范围的扫描
4)ref 意思是指 通过索引列,可以直接引用到某些数据行
5)eq_ref 是指,通过索引列,直接引用某1行数据
6)const, system, null 这3个分别指查询优化到常量级别, 甚至不需要查找时间. 一般按照主键来查询时,易出现const,system 或者直接查询某个表达式,不经过表时, 出现NULL 。
7. ref列 指连接查询时, 表之间的字段引用关系.一般在多表关联查询时显示关联字段。
8.rows : 是指估计要扫描多少行
9.extra:
index: 是指用到了索引覆盖,效率非常高
using where 是指光靠索引定位不了,还得where判断一下
using temporary 是指用上了临时表, group by 与order by 不同列时,或group by ,order by 别的表的列.
using filesort : 文件排序(文件可能在磁盘,也可能在内存), (?????
select sum(shop_price) from goods group by cat_id(???? 这句话,用到了临时表和文件排序)
mysql-explain