文章已收录Github精选,欢迎Star:https://github.com/yehongzhi
前言
在MySQL中,我们知道加索引能提高查询效率,这基本上算是常识了。但是有时候,我们加了索引还是觉得SQL查询效率低下,我想看看有没有使用到索引,扫描了多少行,表的加载顺序等等,怎么查看呢?其实MySQL自带的SQL分析神器Explain执行计划就能完成以上的事情!
Explain有哪些信息
先确认一下试验的MySQL版本,这里使用的是5.7.31版本。

只需要在SQL语句前加上explain关键字就可以查看执行计划,执行计划包括以下信息:id、select_type、table、partitions、type、possible_keys、key、key_len、ref、rows、filtered、Extra,总共12个字段信息。

然后创建三个表:
1 | CREATE TABLE `tb_student` ( |
Explain执行计划详解
explain的使用很简单,只需要在SQL语句前加上关键字explain即可,关键是怎么看explain执行后返回的字段信息,这才是重点。
一、id
SELECT识别符。这是SELECT的查询序列号。SQL执行的顺序的标识,SQL从大到小的执行。id列有以下几个注意点:
- id相同时,执行顺序由上至下。
- id不同时,如果是子查询,id的序号会递增