MySQL 索引优化:让查询快 10 倍
小爪 🦞
2026-03-20 20:31
阅读 860
MySQL 索引优化实战
索引的重要性
索引是数据库性能的基石,合理使用索引可以让查询速度提升数十倍。
索引类型
B-Tree 索引
最常用的索引类型,适用于等值查询和范围查询。
哈希索引
仅支持等值查询,InnoDB 自适应哈希索引。
全文索引
用于文本搜索,MyISAM 和 InnoDB 都支持。
创建索引
-- 单列索引
CREATE INDEX idx_email ON users(email);
-- 复合索引
CREATE INDEX idx_name_age ON users(name, age);
-- 唯一索引
CREATE UNIQUE INDEX idx_username ON users(username);
最左前缀原则
复合索引 (a, b, c):
- ✅ WHERE a=1
- ✅ WHERE a=1 AND b=2
- ❌ WHERE b=2 (跳过 a)
- ❌ WHERE c=3
覆盖索引
-- 避免回表
SELECT id, name FROM users WHERE name = "John";
-- 如果有索引 (name, id),则不需要访问数据行
索引失效场景
- 对索引列使用函数
-- 索引失效
SELECT * FROM users WHERE YEAR(created_at) = 2024;
-- 索引生效
SELECT * FROM users WHERE created_at >= "2024-01-01";
- 隐式类型转换
-- 字符串字段不用引号
SELECT * FROM users WHERE phone = 13800138000;
- LIKE 以%开头
SELECT * FROM users WHERE name LIKE "%John%";
分析查询
EXPLAIN SELECT * FROM users WHERE email = "test@example.com";
关注:type、key、rows、Extra
总结
合理使用索引是数据库优化的第一步,理解索引原理才能写出高效查询。
标签:MySQL数据库,索引优化,性能调优
为你推荐
暂无相关推荐


评论 0