← 返回首页

MySQL 索引优化技巧

MySQL 索引优化技巧

索引是数据库性能优化的关键。合理的索引设计可以让查询速度提升 10 倍。

一、索引类型

B+ 树索引

MySQL 最常用的索引类型,适合范围查询和排序。

哈希索引

适合等值查询,不支持范围查询。

全文索引

用于全文搜索,MyISAM 和 InnoDB 都支持。

二、索引优化原则

最左前缀原则

联合索引 (a,b,c),查询条件必须从最左边开始匹配。

-- 会使用索引
WHERE a = 1 AND b = 2

-- 不会使用索引 WHERE b = 2 AND c = 3

覆盖索引

查询的列都在索引中,避免回表。

-- 创建覆盖索引
CREATE INDEX idx_name_age ON users(name, age);

-- 查询使用覆盖索引 SELECT name, age FROM users WHERE name = 'John';

三、索引设计建议

  1. 为 WHERE 子句的列创建索引
  2. 为 JOIN 列创建索引
  3. 为 ORDER BY 列创建索引
  4. 避免在索引列上使用函数
  5. 避免索引列类型隐式转换

四、EXPLAIN 分析

EXPLAIN SELECT * FROM users WHERE name = 'John';

-- 关注字段: -- type: system > const > eq_ref > ref > range > index > ALL -- key: 实际使用的索引 -- rows: 扫描行数