mysql的查看执行计划的语句很简单,explain+你要执行的sql语句就OK了。举一个例子 EXPLAIN SELECT * from employees where employees.gender='M'返回的结果如下:这些结果都代表什么?id是一组数字,表示查询中执行select子句或操作表的顺序。如果id相同,则执行顺序从上至下。如果是子查询,id的序号会递...
如何理解MySQL的执行计划
mysql的查看执行计划的语句很简单,explain+你要执行的sql语句就OK了。
举一个例子
EXPLAIN SELECT * from employees where employees.gender='M'
返回的结果如下:
这些结果都代表什么?
id是一组数字,表示查询中执行select子句或操作表的顺序。
如果id相同,则执行顺序从上至下。
如果是子查询,id的序号会递增,id越大则优先级越高,越先会被执行。
id如果相同,则可以认为是一组,从上往下顺序执行,所有组中,id越高,优先级越高,越容易执行。
selecttype有simple,primary,subquery,derived(衍生),union,unionresult。
simple表示查询中不包含子查询或者union。
当查询中包含任何复杂的子部分,最外层的查询被标记成primary。
在select或where列表中包含了子查询,则子查询被标记成subquery。
在from的列表中包含的子查询被标记成derived。2017-12-01