一、什么是执行计划
有了慢查询语句后,我们就要对语句进行分析了。一条查询语句在经过MySql查询优化器的各种基于成本和规则的优化后,会生成一个所谓的执行计划。这个执行计划展示了,接下来具体执行查询的方式。比如多表连接的顺序是什么,对于每个表采用什么访问方法来具体执行查询等等。EXPLAIN 语句来帮助我们查看某个查询语句的具体执行计划,我们需要搞懂 EXPLAIN 的各个输出项都是干嘛的,从而可以有针对性的提升我们查询语句的性能问题。
通过使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理我们的SQL语句的。分析查询语句或是表结构的性能瓶颈,总的来说通过 EXPLAIN 我们可以:
- 表的读取顺序
- 数据读取操作的操作类型
- 哪些索引可以使用
- 哪些索引被实际使用
- 表之间的引用
- 每张表有多少行被优化器查询
二、执行计划的语法
执行计划的语法其实非常的简单:在SQL查询的前面加上 EXPLAIN关键字就行。比如:
explain select *from student where id = 100