EXPLAIN和EXPLAIN ANALYZE区别
- EXPLAIN展示查询优化器对该查询计划估计的代价,但是不执行该查询。
- EXPLAIN ANALYZE不仅会显示查询计划,还会实际运行语句。
Explain Analyze不影响数据操作方式
- EXPLAIN ANALYZE会丢掉任何来自SELECT语句的输出,但是该语句中的其他操作会被执行(例如INSERT、UPDATE或者DELETE)。
- 要在DML语句上使用EXPLAIN ANALYZE却不让该命令影响数据,可以明确地把EXPLAIN ANALYZE用在一个事务中:
(BEGIN; EXPLAIN ANALYZE ...; ROLLBACK;)
EXPLAIN ANALYZE结果解析
- cost
优化器评估的成本
- rows
第一个rows表示估计访问的行数
第二个rows表示真正执行的行数
- actual time
actual time=0.048..7.194
前面的0.048是获取第一行所耗费的时间
第二个7.194是获取所有记录花费的时间
如果循环多次,loops大于1,则该值就是一次循环对应的平均时间
- loops
循环次数