在 MySQL 中,EXPLAIN
命令用于展示查询的执行计划,展示 MySQL 如何执行某条查询语句。EXPLAIN
输出的 type
列描述了 MySQL 使用的查询访问类型,代表了 MySQL 如何访问数据表中的行。这些访问类型按效率从低到高排列分别是:ALL
、index
、range
、ref
、eq_ref
、const
等。
下面分别举例说明每一种访问类型,并解释它们在 EXPLAIN
输出中的含义。
1. ALL
(全表扫描)
1.1 解释
ALL
表示全表扫描,即 MySQL 会扫描表中的所有行来查找匹配的记录。- 这是效率最低的查询类型,通常意味着没有使用索引或索引未能优化查询。
1.2 示例
假设有一个表 employees
:
CREATE TABLE employees (
emp_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
department_id INT,
salary DECIMAL(10, 2)
);
以下查询会触发全表扫描:
EXPLAIN SELECT * FRO