sql 执行计划详解

首先,我们在执行一条sql语句时,如 SELECT * from a ,LF_PRIVILEGE where a.a<'1000' ;

我们是否有考虑过,在执行时先查询哪个表,后查询哪个表,每个表中有多少行数据被查询,

我们就可以通过 explain + 要执行的sql语句,得到该句sql的具体执行计划,从而可以了解到以下信息

1、表的读取顺序 
2、数据读取操作的操作类型 
3、哪些索引可以使用 
4、哪些索引被实际使用 
5、表之间的引用 
6、每张表有多少行被优化器查询

相信还是有小伙伴,对于上面的这一段描述不太清楚,下面给大家展示一个页面

 

sql 执行计划详解

 

如上图所示,在navicat中连接数据库,然后写入sql语句,点击运行,然后点击解释,就会展示这段sql在执行过程中,涉及到的一些数据,如id可以用来查看两个表之间是先执行查询哪一个表,table表示查询的是哪一个表。具体的各个字段解释,

参考以下博文

https://blog.****.net/wuseyukui/article/details/71512793