你将学到

试看链接 https://pan.baidu.com/s/1NYtOd_gJnbHg4KVkeM5o-w?pwd=jsgv

相关推荐

MySQL必会核心问题50讲 | 完结9章

SpringBoot+Vue3+MySQL集群 开发健康体检双系统

MySQL、Redis、MongoDB 数据库一课通(已完结,视频+资料代码)

资源目录

一、慢查询诊断问题

  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_binlogbinlog_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表字段解析