MySQL 调优实战——从慢查询到高可用
文章平均质量分 80
一条SQL从5秒到50ms怎么改?两张表互锁死怎么办?主从延迟半小时如何追平?本专栏用8个真实调优案例,覆盖索引失效、死锁分析、分页深翻、读写分离、binlog时间点恢复。每章配完整SQL脚本 + 慢日志截图,让优化不再靠猜。适合被慢查询折磨的后端/DBA。
余额抵扣
助学金抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
sfishfly
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第8章:高可用方案对比——MGR、MHA、Orchestrator 的选型与简单搭建
几种主流 MySQL 高可用方案的原理、优缺点对比(MHA、MGR、Orchestrator、ProxySQL)。如何快速搭建 MHA 环境并测试故障切换。**新增**:Docker Compose 一键搭建 MHA 环境脚本、Orchestrator 的 HTTP API 调用示例、ProxySQL 读写分离 + 故障切换配置、实际生产中的选型决策树。原创 2026-06-16 03:17:26 · 44 阅读 · 0 评论 -
第7章:备份与恢复——mysqldump + binlog 时间点恢复
`mysqldump` 的核心参数(`--single-transaction`、`--master-data`、`--flush-logs` 等)。全量备份 + binlog 增量恢复的完整流程。使用 `mysqlbinlog` 按时间点、按位置、按 GTID 恢复数据。生产级自动化备份脚本(含压缩、加密、异地上传)。**新增**:`xtrabackup` 热备方案、多数据库批量备份、恢复测试自动化脚本、误删数据后的分钟级恢复完整示例。原创 2026-06-16 03:17:14 · 17 阅读 · 0 评论 -
第6章:读写分离与主从延迟——搭建主从,处理从库复制延迟
MySQL 主从复制的原理与搭建步骤(完整可运行脚本)。如何实现应用层的读写分离(SpringBoot/MyBatis 示例)。处理主从延迟的 4 种方案:写后读主库、延迟查询、中间件路由(ShardingSphere-JDBC)、强制路由注解。真实案例:大促期间从库延迟 30 秒,用户下单后查不到订单,投诉率飙升;还有一次主从切换后应用还在写旧主库,导致数据丢失。原创 2026-06-16 03:17:04 · 19 阅读 · 0 评论 -
第5章:分页查询优化——百万级大表 LIMIT 100000,10 的改写
传统 `LIMIT m,n` 分页为什么越往后越慢?优化分页的 4 种核心方法:**延迟关联**(先查主键再回表)、**游标分页**(`WHERE (created_at, id) > (last_created_at, last_id)`)、**覆盖索引 + 子查询**、**主键范围扫描**(自增主键场景)。每种方法配有完整的可运行 SQL 示例、性能测试脚本、真实数据对比。真实案例:一张 1000 万行的订单表,第 100 页查询从 3.2 秒降到 0.05 秒,代码改动不超过 3 行。 > **配原创 2026-06-16 03:16:50 · 24 阅读 · 0 评论 -
第4章:数据库字段类型优化——VARCHAR vs CHAR,JSON 类型的使用陷阱
VARCHAR 和 CHAR 在存储、性能、内存使用上的本质区别,以及如何根据数据特征选择合适类型。JSON 类型的优缺点,如何用生成列(Generated Column)提升 JSON 查询性能。字段长度对索引大小和查询效率的影响。真实案例:一张 500 万行的表,把 VARCHAR(255) 改成 VARCHAR(20) 后,索引大小从 1.2GB 降到 200MB,查询速度提升 5 倍。另一个案例:滥用 JSON 导致 CPU 飙升,改用生成列后降低 80%。原创 2026-06-16 03:16:40 · 26 阅读 · 0 评论 -
第3章:死锁日志分析——复现场景:两个事务互相等待,手动解除
什么是死锁,InnoDB 如何处理死锁。如何查看和分析死锁日志(`SHOW ENGINE INNODB STATUS`)。用两个事务互相等待的经典案例复现死锁,并手动解除。死锁预防的 5 种核心策略:固定访问顺序、降低隔离级别、使用索引避免锁升级、拆分大事务、超时回滚。原创 2026-06-16 03:16:29 · 21 阅读 · 0 评论 -
第2章:索引失效场景大全——10种索引失效的案例 + 反例
MySQL 索引为什么“失效”?10 种最经典的索引失效场景,包括函数操作、隐式类型转换、OR 条件、LIKE 以 % 开头、范围查询右侧失效、联合索引非最左匹配、不等于/IS NULL、排序与分组不匹配等。每个场景都配有**正确写法 + 错误写法 + EXPLAIN 分析 + 反例优化方案**。原创 2026-06-16 03:16:18 · 20 阅读 · 0 评论 -
第1章:EXPLAIN 详解与慢查询日志分析——定位一条5秒的SQL,优化到50ms
MySQL 慢查询日志的开启与配置,如何用 `mysqldumpslow` 和 `pt-query-digest` 分析慢 SQL。EXPLAIN 输出中每一列的含义(id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra)。用真实案例把一个 5 秒的订单查询优化到 50ms,涉及索引失效、回表、文件排序等典型问题。原创 2026-06-16 03:16:08 · 26 阅读 · 0 评论
分享