引言
查询优化是提升MySQL性能的关键。本文介绍实用的查询优化技巧。
一、慢查询分析
1 2 3 4 5 6 7 8 9
| SET GLOBAL slow_query_log = ON; SET GLOBAL long_query_time = 2;
SHOW VARIABLES LIKE 'slow_query%';
mysqldumpslow -s t -t 10 /var/log/mysql/slow.log
|
二、SQL优化技巧
2.1 避免SELECT *
1 2 3 4 5
| SELECT * FROM users;
SELECT id, name, email FROM users;
|
2.2 使用LIMIT分页
1 2 3 4 5
| SELECT * FROM users LIMIT 1000000, 10;
SELECT * FROM users WHERE id > 1000000 LIMIT 10;
|
2.3 避免子查询
1 2 3 4 5
| SELECT * FROM users WHERE id IN (SELECT user_id FROM orders);
SELECT u.* FROM users u INNER JOIN orders o ON u.id = o.user_id;
|
三、索引优化
1 2 3 4 5 6 7 8
| EXPLAIN SELECT * FROM users WHERE name = 'Alice';
CREATE INDEX idx_name ON users(name);
DROP INDEX idx_unused ON users;
|
四、查询缓存
1 2 3 4
| SHOW VARIABLES LIKE 'query_cache%';
|
总结
MySQL查询优化要点:
- 分析慢查询:找出性能瓶颈
- 优化SQL:避免SELECT *、使用LIMIT
- 添加索引:提高查询效率
- 使用缓存:减少数据库压力
参考资料