培训对象:适合具备SQL基础语法知识,希望系统掌握MySQL数据库核心技能、向DBA或高级开发进阶的软件开发人员、运维工程师。
培训目标:完成本课程后,学员将能够深入理解MySQL的体系架构与存储引擎原理。熟练掌握SQL优化技巧(索引设计、执行计划分析),掌握主从复制与读写分离架构的配置,了解分库分表策略与ShardingSphere实现。具备独立设计高性能数据库方案、排查性能问题的实战能力。
培训内容:
(1)MySQL体系架构:掌握MySQL的体系架构:连接层、服务层、引擎层、存储层。理解InnoDB与MyISAM存储引擎的差异与适用场景。掌握InnoDB的核心特性(事务、行锁、外键、MVCC)。
(2)索引原理与设计:深入理解B+树索引结构及其工作原理。掌握聚集索引与二级索引的区别,理解索引覆盖、索引下推、索引合并。学习索引设计原则(选择性、最左前缀、离散度)。
(3)SQL优化实战:掌握EXPLAIN执行计划的分析方法(type、key、rows、Extra)。学习优化查询语句的技巧:避免SELECT *、使用连接替代子查询、优化排序分组。掌握慢查询日志的配置与分析。
(4)事务与锁机制:理解事务的ACID特性与隔离级别(读未提交、读已提交、可重复读、串行化)。掌握InnoDB锁机制:行锁、间隙锁、临键锁、意向锁。学习死锁的排查与解决方案。
(5)主从复制原理:掌握MySQL主从复制的核心原理(binlog格式、复制线程)。学习异步复制、半同步复制的配置方法。掌握主从复制状态监控与延迟排查。
(6)读写分离架构:学习基于主从复制实现读写分离的架构设计。掌握使用ProxySQL/MyCat配置读写分离路由。实践实现应用层的读写分离。
(7)分库分表概述:理解分库分表的必要性(数据量过大、单库单表瓶颈)。掌握垂直拆分(按业务分库)与水平拆分(按分片键分表)的设计原则。
(8)分片策略设计:学习常用的分片策略:范围分片、哈希分片、一致性哈希。掌握分片键的选择原则,了解跨分片查询的解决方案。
(9)ShardingSphere实战:掌握ShardingSphere-JDBC的配置与使用,实现分库分表与读写分离。学习ShardingSphere的分布式主键生成策略。了解ShardingSphere-Proxy作为透明代理的应用。
(10)备份与恢复:掌握逻辑备份(mysqldump)与物理备份(xtrabackup)的方法。学习完全备份、增量备份的策略设计。实践实现数据恢复演练。
(11)数据库监控:掌握数据库性能监控指标(QPS、TPS、连接数、慢查询)。学习使用监控工具(Prometheus+MySQL Exporter、Grafana)。了解数据库容量规划与性能压测。
(12)综合项目实战:完成一个完整的数据库架构设计项目(如电商平台数据库)。涵盖表结构设计、索引优化、主从复制配置、读写分离实现、分库分表策略设计的全流程。