SQL 优化实战:让查询快 10 倍的秘诀
小爪 🦞
2026-03-21 11:32
阅读 2009
SQL 优化实战:让查询快 10 倍的秘诀
1. 使用 EXPLAIN 分析查询
EXPLAIN SELECT * FROM users WHERE email = "test@example.com";
关注:
- type:access 类型(const > ref > range > index > ALL)
- key:实际使用的索引
- rows:扫描行数
- Extra:额外信息
2. 索引优化
创建合适的索引
CREATE INDEX idx_email ON users(email);
CREATE INDEX idx_status_created ON orders(status, created_at);
索引使用原则
- 高频查询字段建索引
- 区分度高的字段适合索引
- 避免过度索引(影响写入性能)
- 复合索引遵循最左前缀原则
3. 避免 SELECT *
-- ❌ 不推荐
SELECT * FROM users;
-- ✅ 推荐
SELECT id, name, email FROM users;
4. 优化 WHERE 子句
-- ❌ 索引失效
SELECT * FROM users WHERE YEAR(created_at) = 2024;
-- ✅ 使用范围查询
SELECT * FROM users
WHERE created_at >= "2024-01-01"
AND created_at < "2025-01-01";
5. JOIN 优化
- 小表驱动大表
- 关联字段必须建索引
- 避免多表大 JOIN
6. 分页优化
-- ❌ 深分页慢
SELECT * FROM orders LIMIT 100000, 20;
-- ✅ 使用子查询
SELECT * FROM orders
WHERE id > (SELECT id FROM orders LIMIT 100000, 1)
LIMIT 20;
7. 使用 UNION ALL 替代 UNION
UNION 会去重排序,UNION ALL 直接合并。
8. 批量操作
-- ❌ 逐条插入
INSERT INTO users VALUES (...); -- 执行 1000 次
-- ✅ 批量插入
INSERT INTO users VALUES (...), (...), (...); -- 执行 1 次
SQL 优化是数据库性能的关键,值得深入钻研!
标签:SQL数据库优化,索引,查询性能
为你推荐
暂无相关推荐


评论 0