使用EXPLAIN可查看MySQL查询执行计划,通过分析type、key、rows和Extra等列判断查询效率,优先避免ALL全表扫描和Using filesort等问题,结合EXPLAIN ANALYZE实际执行效果优化SQL性能。
在MySQL中查看查询执行计划,主要使用 EXPLAIN 关键字。通过它,可以了解MySQL如何执行SQL语句,比如是否使用索引、表的连接顺序、扫描行数等,帮助优化查询性能。
在SELECT语句前加上EXPLAIN,即可获取执行计划信息:
EXPLAIN SELECT * FROM users WHERE id = 1;执行后会返回一个结果表,包含以下关键列:
x"、"Using filesort" 等,对优化很关键MySQL支持不同格式的执行计划输出:
EXPLAIN FORMAT=JSON SELECT * FROM users WHERE name = 'Tom';使用FORMAT=JSON可以获得更详细的执行信息,包括成本估算、条件过滤等,适合深入分析。
在MySQL 8.0及以上版本,支持 EXPLAIN ANALYZE,它会实际执行SQL并返回真实执行过程:
EXPLAIN ANALYZE SELECT * FROM users WHERE age > 25;该命令展示实际运行时间、循环次数等,比EXPLAIN更精准,用于性能调优非常有效。
查看执行计划时重点关注:
基本上就这些。合理使用EXPLAIN,能快速定位慢查询原因,指导索引设计和SQL改写。不复杂但容易忽略细节。