数据库往往是 Web 应用的性能瓶颈。本文总结了 MySQL 优化的核心策略。

1. 索引优化

索引是提升查询速度最有效的手段。

1.1 最左前缀原则

如果有一个联合索引 (a, b, c),以下查询可以使用索引:

sql
SELECT * FROM table WHERE a = 1;
SELECT * FROM table WHERE a = 1 AND b = 2;
SELECT * FROM table WHERE a = 1 AND b = 2 AND c = 3;

以下查询不能使用索引(或只能部分使用):

sql
SELECT * FROM table WHERE b = 2; -- 无法使用
SELECT * FROM table WHERE c = 3; -- 无法使用
SELECT * FROM table WHERE a = 1 AND c = 3; -- 只能使用 a 部分

1.2 覆盖索引

尽量让查询的字段包含在索引中,避免回表查询。

sql
-- 假设有索引 (user_id, username)
SELECT user_id, username FROM users WHERE user_id = 100;
-- 此时不需要回表查聚簇索引,速度极快

2. 查询优化 (Explain)

使用 EXPLAIN 关键字分析 SQL 执行计划。

列名 含义 理想值
:--- :--- :---
type 访问类型 const > eq_ref > ref > range > index > ALL
key 实际使用的索引 不为 NULL
rows 扫描行数 越小越好
Extra 额外信息 避免 Using filesort, Using temporary

3. SQL 编写规范

  • 避免使用 SELECT *:只查询需要的字段。
  • 避免在 WHERE 子句中对字段进行函数操作:会导致索引失效。
  • ❌ WHERE YEAR(create_time) = 2023
  • ✅ WHERE create_time BETWEEN '2023-01-01' AND '2023-12-31'
  • 大分页优化:使用 id 范围查询替代 LIMIT 100000, 10。

4. 总结

优化 MySQL 需要结合具体的业务场景,通过监控和分析工具(如 Slow Query Log)找到瓶颈,有针对性地进行调整。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
0.335153s