explain命令是查看MySQL查询优化器如何执行查询的主要方法,可以很好的分析SQL语句的执行情况。每当遇到执行慢(在业务角度)的SQL,都可以使用explain检查SQL的执行情况,并根据explain的结果相应的去调优SQL等。
要使用explain,只需在查询中的select前加上explain关键字。它会返回一行或多行信息,显示出执行计划中的每一部分和执行的次序。在查询中每个表在输出中占一行,如果查询是两个表的联接,那么输出中将有两行,因此如果一个表与自己联接,输出中也会有两行。表的含义在这里是一个很泛的含义:可以是一个子查询、一个union结果等。
explain的输出结果有很多列,下面我将逐一剖析每一列的意义。记住,输出中的行以MySQL实际执行的查询的顺序出现,而这个顺序不总是与其在原始SQL中保持一致。
详情参考: