在要执行的sql前面加explain可以显示其sql的执行计划,由此可得知该sql执行了那些操作、执行操作的开销、是否使用索引等,下面将介绍执行计划的参数解读。
先在sql前面加explain,执行就会出现以下内容:
列说明:
id列:执行算子的编号(id相同,从上执行到下;id不同,id大的先执行,如上面图的id都不同,所以执行顺序为6、5、4、3、2、1)
operation列:执行算子的名称
E-rows列:算子估计的输出行数
E-memory列:算子估算的内存使用量
E-width列:算子输出元组(表的一行数据就是一个元组)估计的宽度
E-costs列:算子执行的估计代价(包括它所有子节点的开销)
是否用索引说明:
Seq Scan:没有走索引,全表顺序扫描。如上图条件只有currency_type,没有走索引,所以是全表扫描
Index Scan:查询走索引,正常走索引如下所示:
Bitmap Index Scan代表使用的是位图索引