Mysql性能优化(三)–explain返回的结果说明
如何对一条查询语句进行性能分析,必不可少的要使用的是explain,explain的意思是执行计划;那接下来我们就详细说明一下explain的返回结果;
一、explain的使用方法
explain select语句;
例如:explain select * from stuInfoA;
返回的结果如下图:
结果说明:
id:是select 的标识符,表示select 语句的执行顺序;如果该select语句有嵌套查询,则explain会有多行结果返回,也就会有多个id,id的数字越大表示该select子句越先执行;如果数字相同,则按从上到下的顺序执行;
select_type: select_type会根据不同的SQL语句返回不同的结果;它有以下返回结果:
SIMPLE:表示不需要union操作或者不包含子查询的简单select语句,如果有连接查询,外层的查询为simple,且只有一个;
primary:一个需要union操作或者含有子查询的select,位于最外层的单位查询的select_type即为primary,且只有一个;
union:union连接的多个select查询,第一个查询是derived派生表,除了第一个表外,第二个以后的表的select_type都是union;
dependent union:与union一样,出现在union或union all中;取决于外部查询的结果;
union result:包含union的结果集,