sql的执行:
- 通讯阶段
- 查询缓存
- 解析器进行验证解析,基于语法戒心和词法解析得到解析树
- 优化器,优化执行阶段找到SQL的最优执行方式
- 执行器执行计划
用explain或者desc查看sql的执行计划
执行计划参数:
-
id:sql执行的顺序,值大的先执行,id一样的话,按照顺序从上至下执行
-
select_type:执行类型,包括下面几种
- simple:简单查询
- primary:最外层查询
- subquery:子查询
- union:连接查询
- union result:连接查询的结果集
-
table:查询涉及到的表或表的别名
-
type:执行数据获取的方式,取值及排序system>const>eq_ref>ref>range>index>all
-
partitions:查询数据的分区信息
-
possible_keys:可能使用到的索引
-
key:真正使用到的索引
-
key_len:索引使用的包含的列长度
-
rows:估算找到数据需要读取的行数
-
filtered:返回结果的行数占读到行数(rows)的百分比
-
extra