MySQL EXPLAIN 妙用:执行计划分析与优化技巧
MySQL EXPLAIN 妙用:执行计划分析与优化技巧 在 MySQL 开发中,遇到 SQL 执行缓慢时,最常用的分析工具之一就是 EXPLAIN。 它可以帮助我们回答几个关键问题: MySQL 使用了哪个索引? SQL 是全表扫描还是索引扫描? 预计扫描多少行? 多表 JOIN 的执行顺序是什么? 是否发生了额外排序或临时表? 优化器的估算是否准确? MySQL 8.x 还提供了 EXPLAIN ANALYZE,可以进一步查看实际执行情况。 官方文档:MySQL EXPLAIN 官方文档 一、EXPLAIN 基本用法 最简单的使用方式: EXPLAIN SELECT * FROM users WHERE id = 10001; 也可以分析复杂 SQL: EXPLAIN SELECT o.id, o.amount, u.name FROM orders o JOIN users u ON u.id = o.user_id WHERE o.status = 1 ORDER BY o.created_at DESC LIMIT 20; 常见输出: +----+-------------+-------+------+---------------+---------+---------+-------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+------+---------------+---------+---------+-------+------+-------------+ | 1 | SIMPLE | users | const| PRIMARY | PRIMARY | 8 | const | 1 | | +----+-------------+-------+------+---------------+---------+---------+-------+------+-------------+ 实际分析时,不需要一开始记住所有字段,重点关注以下列:...