getfromcode测试运维 会员免费

jk MySQL 进阶训练营 (完结)

这套 MySQL 进阶资料聚焦于数据库底层性能瓶颈的排查与治理,主要解决线上高并发场景下慢查询频发、锁阻塞以及表结构变更导致的业务抖动问题。它不重复基础 CRUD 语法,而是深入 InnoDB 存储引擎内部,剖析执行器、索引结构及连接算法。适合具备半年以上开发经验,熟悉基本 SQL 优化但无法定位复

单课价¥29新品 上架
会员价 会员免费开通会员,全站课程按额度无限下载套餐详情
17 人关注 更新于 2026-10-05 永久有效
发货

网盘链接 · 支付成功后自动发货

保障

永久有效 · 链接失效免费补发

客服

每日 9:00-21:00 在线客服 联系客服

购买方式开通会员 · 全站免费下单课购买 · 仅本课

支付成功后自动显示网盘下载链接;链接失效可联系客服免费补链,永久有效。

正版保障 极速发货 售后无忧

这套 MySQL 进阶资料聚焦于数据库底层性能瓶颈的排查与治理,主要解决线上高并发场景下慢查询频发、锁阻塞以及表结构变更导致的业务抖动问题。它不重复基础 CRUD 语法,而是深入 InnoDB 存储引擎内部,剖析执行器、索引结构及连接算法。适合具备半年以上开发经验,熟悉基本 SQL 优化但无法定位复杂场景性能拐点,或负责核心业务数据库运维的工程师。若你对聚簇索引、B+树结构或两阶段提交机制感到模糊,建议先回顾基础原理再切入此内容。

核心模块解析

资料将内容划分为慢查询诊断、SQL 执行阶段分析与 DDL 变更三大板块。首先通过慢查询日志配置与参数调优,建立初步的性能监控体系,重点讲解如何减少突发慢查询对系统整体吞吐量的冲击。其次深入 SQL 执行器,详细拆解 InnoDB 聚簇索引结构与执行器单元操作,对比堆排序与归并排序在临时表排序中的应用场景。在连接优化部分,通过流程图展示 Nested Loop Join 与 Hash Join 的算法流程与代价分析,明确 join_buffer_size 的作用边界,并解析 STRAIGHT_JOIN 等特殊提示符对执行计划的影响。最后探讨 DDL 变更机制,对比 Copy、Inplace 与 Instant DDL 三种算法在加索引时的资源消耗,重点阐述 MDL 锁交互过程,帮助理解为何大表加索引容易引发元数据锁等待。

落地实践路径

建议按照“诊断-分析-变更”的逻辑进行自学。先看慢查询诊断章节,结合生产环境日志复现问题;再研读 SQL 消耗阶段分析,使用 EXPLAIN 命令对照理论验证执行计划;最后学习 DDL 部分,理解不同变更算法的适用场景。学完后,你应能独立编写慢查询分析报告,针对特定 SQL 语句给出索引优化或重写方案,并制定大表结构变更的安全执行计划,避免业务中断。学习时务必配合实战环境,在测试库中模拟高并发写入与复杂查询,观察参数调整前后的性能差异,将理论中的代价分析转化为可量化的工程决策依据,而非仅停留在概念记忆层面。

你将学到

试看链接

相关推荐

资源目录

一、慢查询诊断问题

  1. 慢查询相关参数和建议配置

  2. 慢查询日志影响性能吗?

  3. 减少突发慢查询对系统的影响

  4. 判断慢查询语句优化空间

  5. 调优思路案例分析


二、SQL主要消耗阶段分析

  1. 慢查询分析思路

  2. InnoDB聚簇索引结构

  3. 执行器单元操作及数据结构

    • 优先队列排序(堆排序)

    • 归并排序

  4. 表连接语义与流程

    • INNER/LEFT/RIGHT/OUTER JOIN流程图

    • Nested Loop Join算法流程与代价分析

    • STRAIGHT_JOIN/SEMI-JOIN/ANTI-JOIN

    • join_buffer_size作用

    • Hash Join算法流程与代价分析

  5. 案例分析


三、DDL问题

  1. DDL类型

  2. Copy算法流程

  3. Inplace算法流程

    • 加索引(静态)

    • 加索引(动态)

  4. Instant DDL

    • 流程与MDL锁交互

  5. DDL过程消耗分析

  6. OPTIMIZE TABLE过程

  7. 生产环境DDL最佳实践


四、线上DDL问题

  1. REPLACE INTO/TRIGGER/INSERT...SELECT风险

  2. RR(可重复读)隔离级别的影响

  3. 自制Online DDL方案

    • 触发器实现

    • Binlog同步方案

  4. 分表扩容策略

    • N个分表拆为2N个(分区表方案)


五、Binlog问题

  1. Binlog存储与格式(ROW/STATEMENT/MIXED)

  2. 主库性能影响

  3. 主备同步性能

  4. 关键参数:sync_binlog,binlog_group_commit_sync_delay

  5. 主备流程图

  6. 备库应用速度优化

    • 并行复制策略

    • 大事务拆分

  7. 数据恢复速度

    • MVCC闪回

    • Binlog闪回

    • 回收站/延迟备份

    • 全量+Binlog回放

  8. 主备切换速度优化

    • 影响环节分析


六、水平扩展方案

  1. 读写分离架构

    • 过期读问题与业务容忍度

  2. 分表必要性分析

  3. 分表字段选择原则

  4. 分区表适用场景

  5. 透明分表方案对比

    • 应用层Sharding

    • 中间件(Proxy)

  6. 分库分表方案对比

  7. 官方并行复制策略


七、水平分库

  1. 分库驱动力(性能/容量)

  2. 不分库替代方案

  3. 技术方向

    • 应用直连 vs Proxy

  4. 其他扩展方向

    • 共享存储

    • 分布式协议(对比MGR)


八、MySQL线程模型

  1. 分层架构(Server层/存储引擎层)

  2. Server层线程

    • 监听线程

    • 用户线程状态(运行/等待/锁阻塞)

    • GTID线程

    • 事件调度器线程

    • 信号处理线程

  3. 客户端协议:停等协议

  4. 内存消耗分析

    • binlog_cache/sort_buffer

  5. 连接池 vs 线程池

    • 工作原理对比


九、InnoDB线程与机制

  1. 关键线程

    • buf_dump_thread(缓冲池导出)

    • ib_io_read(异步I/O)

    • purge_thread(事务清理)

    • page_flush_coordinator_thread(刷盘协调)

  2. 内存优化

    • 动态调整buffer_pool

  3. Change Buffer(Ibuf)

  4. 查询触发刷脏页场景

  5. Off-page列存储


十、锁机制

  1. 锁类型(表锁/行锁/意向锁)

  2. 隔离级别动态修改

  3. performance_schema.data_locks字段解读

    • LOCK_MODE取值(X/S/IX/IS/GAP)

  4. Gap Lock冲突规则

  5. 死锁检测与处理

    • 发现方法

    • 回滚权重算法

  6. 锁优化策略

    • 语句顺序调整

    • 二级索引锁机制

    • 覆盖索引减少锁冲突

  7. 备份锁优化

    • 从库备份策略

    • 主键更新索引优化


十一、性能优化

  1. 优化策略设计思想

  2. 部署优化

    • Semi-sync

    • 单元化架构

  3. 配置优化

    • 参数模板(innodb_buffer_pool_size等)

  4. 内部机制优化

    • 更新短路查询

    • AHI(自适应哈希索引)

    • Change Buffer

  5. 应用层优化

    • 索引失效场景

    • 模糊匹配优化(LIKE)

  6. 升级与兼容

    • 5.7→8.0字符集迁移(utf8mb4)

  7. 内存命中率监控

  8. 索引长度限制


十二、MySQL规范

  1. 单机规范

  2. 建表规范

  3. 权限规范

  4. 数据存储规范

  5. 数据更新规范

  6. 操作规范

  7. 集群规范

  8. 可靠性规范

  9. 可用性规范

  10. 数据安全规范


十三、MySQL参数详解

InnoDB参数

  • innodb_fast_shutdown

  • innodb_file_per_table

  • innodb_flush_log_at_trx_commit

  • innodb_io_capacity

  • innodb_buffer_pool_instances

  • innodb_autoinc_lock_mode

  • …(其他参数完整保留)

日志参数

  • slow_query_log

  • max_binlog_size

  • binlog_expire_logs_seconds

复制参数

  • slave_preserve_commit_order

  • log_slave_updates

其他参数

  • skip_name_resolve

  • max_allowed_packet

  • transaction_isolation

  • …(完整列出)


十四、MVCC机制

  1. 隔离级别设置与范围

    • 默认值(RR)与有效值

  2. MVCC核心概念

    • 多版本物理结构

    • 数据版本链示例

  3. 实践场景

    • RC vs RR下的操作差异

  4. 备份方案与MVCC

  5. MVCC与锁的关系

  6. 课堂练习

    • RC/RR隔离级别实验

    • RR下锁机制验证


十五、命令输出解读

  1. mysqlbinlog解析

    • 输出内容剖析

  2. mysqldump详解

    • 选项功能与依赖处理

  3. EXPLAIN实战

    • 测试数据构造

    • 各类型查询分析

    • 优化器跟踪

  4. SHOW ENGINE INNODB STATUS解读

    • 事务信息

    • 死锁日志

  5. INNODB_TRX表字段解析