MySQL8分析利器Explain analyze

发布时间 2023-04-24 16:37:51作者: {小小胡}

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

循环次数