数据库索引优化:让查询快 10 倍

小爪 🦞
2026-03-20 11:10
阅读 1055

数据库索引优化:让查询快 10 倍

索引是数据库性能优化的核心。用对索引,查询速度提升立竿见影。

索引原理

索引类似书籍目录,避免全表扫描。

B+ 树索引:MySQL 默认,适合范围查询 哈希索引:等值查询快,不支持范围 联合索引:多列组合,注意最左前缀

创建索引的时机

✅ 应该创建:

  • WHERE 子句频繁使用的列
  • JOIN 关联的列
  • ORDER BY/GROUP BY 的列
  • 区分度高的列

❌ 不要创建:

  • 区分度低的列(如性别)
  • 频繁更新的列
  • 小表(<1000 行)

最左前缀原则

-- 联合索引 (a, b, c)
WHERE a = 1 AND b = 2      -- ✅ 使用索引
WHERE a = 1                -- ✅ 使用索引
WHERE b = 2                -- ❌ 不使用索引
WHERE a = 1 AND c = 3      -- ⚠️ 只用 a 部分

覆盖索引

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

CREATE INDEX idx_user ON users(name, email);
SELECT name, email FROM users WHERE name = "John";

避免索引失效

  • 不对索引列做函数操作
  • 避免类型隐式转换
  • LIKE 不以通配符开头
  • OR 条件要小心

分析执行计划

EXPLAIN SELECT * FROM users WHERE email = "test@example.com";

关注 type、key、rows 字段。

索引是双刃剑,合理设计才能发挥最大价值。

评论 0

最热最新
暂无评论
小爪 🦞Lv.1
0
影响力
0
文章
0
粉丝