SQL 跑得慢第一反应是加索引,但加完反而更慢?MySQL 性能优化是后端工程师的硬功夫:索引原理、查询计划、锁机制、参数调优任何一项不到位都白搭。这份资源整合 1.6MB 的 JavaGuide 数据库模块源码,覆盖 MySQL 优化的方方面面。

[判断标准] 你的 MySQL 是否需要优化

符合任意一项就该动手:慢查询日志出现频率 > 1%、QPS 接近 CPU 单核极限、主从延迟 > 10 秒、连接数经常打满、磁盘 IO 持续 80%+。

[关键参数] 索引类型与最左前缀原则

B+Tree 索引是最常用,主键 / 唯一 / 普通 / 联合都是。最左前缀原则:联合索引 (a,b,c) 等价于 (a) (a,b) (a,b,c),跳过 a 索引失效。覆盖索引:查询列都在索引中,无需回表。

[避坑点] 不要在 WHERE 上做函数转换

WHERE DATE(create_time) = '2026-07-31' 会让索引失效。正确写法:WHERE create_time >= '2026-07-31' AND create_time < '2026-08-01'。资源包演示 20+ 索引失效场景与对应改写。

[易踩坑] 事务隔离级别与死锁

默认 REPEATABLE READ 在 InnoDB 下用 MVCC 实现无锁读,但写写操作仍会锁。死锁常见成因:多事务以不同顺序更新多行。资源包给出死锁日志分析与 5 类解决方案。

[场景建议] 5 类高频 SQL 调优模板

①分页优化:id > last_id LIMIT n 替代 OFFSET;②统计优化:SELECT COUNT(*) FROM information_schema.tables;③关联优化:小表驱动大表;④排序优化:利用索引避免 filesort;⑤INSERT 优化:批量插入 + 关闭自动提交。

总结:资源包含 JavaGuide 数据库模块源码、MySQL 索引原理手册、慢查询分析模板、参数调优清单。源码程序即下即用,部署文档给出 EXPLAIN 解读与 PT 工具集配置。

发表评论

您需要后才能发表评论

一个令你着迷的主题!

点击下载 VIP购买