Mysql高级篇(中)—— 索引优化
一、索引分析案例
使用
EXPLAIN
分析SQL
查询性能是数据库优化的重要环节。EXPLAIN
能展示查询的执行计划,帮助我们找出潜在的性能瓶颈。我们可以从EXPLAIN
输出中的多个列(如type、rows、Extra、key
等)来分析查询的执行情况, 常见的优化手段包括创建单列
或复合索引
、避免全表扫描
、减少排序操作
以及充分利用数据库索引覆盖
等。以下我将详细分析单表、两表、三表
查询案例,给出性能分析和优化建议。
案例 1:单表查询
场景描述
我们有一个
employees
表,包含员工的姓名
、年龄
、部门
等信息,结构如下:
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
age INT,
department_id INT,
hire_date DATE,
salary DECIMAL(10, 2),
INDEX (department_id),
INDEX (age)
);
查询要求:查找年龄在 30 岁以上的某部门的所有员工。
SELECT * FROM employees WHERE department_id = 1 AND age > 30;
使用 EXPLAIN
分析该查询:
EXPLAIN SELECT * FROM employees WHERE department_id =