
一、是什么(查看执行计划)

二、能干嘛

三、怎么玩
Explain+SQL语句

3.1 id
select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序。
三种情况:
1.id相同,执行顺序由上至下

上图,id都是1,那么查询的顺序是table字段下的顺序,t1, t3, t2
2.id不同,如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行

3.id相同不同,同时存在

上图第一行的derived2,表示衍生表。其中的2表示id为2,也就t3衍生的表。
3.2 select_type



3.3 table
显示这一行的数据是关于哪张表的
3.4 type


1.system

2.const



3.eq_ref


4.ref


5.range


6.index


7.all


3.5 possible_keys

比如这个表一共建了4个索引。一条sql来了,分析器分析一下,认为可能有2个索引能用上。
3.6 key


3.7 ken_len


3.8 ref


3.9 rows


3.10 Extra

和面试官说或者在工作中:id、type、key、rows、Extra这5个很重要

重要的是前3个

如果显示了Using filesort,性能就不好。




group by尽可能按照索引的顺序和个数来。






不可能name='July'并且name='z3', 所以,这个where不可能。


本文深入解析SQL执行计划,包括查询序列号、选择类型、表、连接类型等关键概念。通过理解id、type、key、rows和Extra字段,掌握查询优化技巧,避免性能瓶颈。
428

被折叠的 条评论
为什么被折叠?



