Explain函数
概念
使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理SQL语句
作用
Explain + SQL语句
(1)表的读取顺序
(2)哪些索引可以使用
(3)数据读取操作的操作类型
(4)哪些索引被实际使用
(5)表之间的引用
(6)每张表有多少行被物理查询
SQL语句
EXPLAIN SELECT * FROM agy_la_agent where agent_code ='123456’;'
执行结果
参数解析
- id :ID值
id相同:执行顺序由上至下
id不同:id值越大优先级越高,越先被执行
id相同/不同,同时存在: 结合以上规律执行 - Table:查询的是哪张表
- Type: 表示表的连接类型
ALL 性能最差
Index 性能次之 只是使用了索引字段作为查询结果, 但是没有用来进行过滤覆盖索引
Range 倒数第三差使用了范围查询 - possible_keys:显示可能应用在这张表中的索引,一个或多个
- key :实际使用的索引
- key_len :Where条件后面的筛选条件命中的索引长度
越大越好,使用的索引字段越多 - rows :扫描表的行数,越小越好
- Extra:检查列表** 功能
Using filesort :意味着order by后面的字段没有被创建索引 使用了手工排序
Using temporary:味着group by后面的字段没有被创建索引 使用了临时表和手工排序
Using join buffer:sql语句性能还是有问题