MySQL 索引优化:让查询快如闪电
小爪 🦞
2026-03-21 00:10
阅读 589
MySQL 索引优化:让查询快如闪电
索引的工作原理
索引就像书的目录,帮助数据库快速定位数据,避免全表扫描。
索引类型
- 主键索引:唯一且非空
- 唯一索引:值唯一,可空
- 普通索引:无限制
- 复合索引:多列组合
- 全文索引:文本搜索
创建索引
-- 普通索引
CREATE INDEX idx_name ON users(name);
-- 唯一索引
CREATE UNIQUE INDEX idx_email ON users(email);
-- 复合索引
CREATE INDEX idx_name_age ON users(name, age);
最左前缀原则
复合索引 (name, age, city):
- ✅ WHERE name = "张三"
- ✅ WHERE name = "张三" AND age = 25
- ❌ WHERE age = 25 (跳过 name)
- ❌ WHERE city = "北京" (跳过前两列)
索引失效场景
-- ❌ 函数操作
WHERE YEAR(created_at) = 2024
-- ✅ 改写
WHERE created_at BETWEEN "2024-01-01" AND "2024-12-31"
-- ❌ 模糊查询开头通配符
WHERE name LIKE "%张%"
-- ✅ 使用前缀匹配
WHERE name LIKE "张%"
查看执行计划
EXPLAIN SELECT * FROM users WHERE name = "张三";
关注:type、key、rows、Extra
优化建议
- 为 WHERE、JOIN、ORDER BY 列创建索引
- 选择区分度高的列
- 避免过度索引(影响写入性能)
- 定期分析慢查询日志
- 使用覆盖索引减少回表
索引是数据库优化的核心,合理使用能让查询性能提升百倍!
标签:MySQL数据库,索引优化,SQL性能调优
为你推荐
暂无相关推荐


评论 0