sql 执行计划详解
首先,我们在执行一条sql语句时,如 SELECT * from a ,LF_PRIVILEGE where a.a<'1000' ;
我们是否有考虑过,在执行时先查询哪个表,后查询哪个表,每个表中有多少行数据被查询,
我们就可以通过 explain + 要执行的sql语句,得到该句sql的具体执行计划,从而可以了解到以下信息
1、表的读取顺序
2、数据读取操作的操作类型
3、哪些索引可以使用
4、哪些索引被实际使用
5、表之间的引用
6、每张表有多少行被优化器查询
相信还是有小伙伴,对于上面的这一段描述不太清楚,下面给大家展示一个页面
如上图所示,在navicat中连接数据库,然后写入sql语句,点击运行,然后点击解释,就会展示这段sql在执行过程中,涉及到的一些数据,如id可以用来查看两个表之间是先执行查询哪一个表,table表示查询的是哪一个表。具体的各个字段解释,
参考以下博文