课程简介
MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统,同时也是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性,MySQL以其成本低(一般为免费,甚至可以免费修改)、执行非常快而且很容易安装和使用等优点,被广泛应用。本课程主要从MySQL数据库的体系结构、性能调优、高性能高可靠架构方案设计、常见故障处理等方面做讲解,课程有以下几个特色:
1. 教程结合实际工作编写,由初级高到高级,分级训练,循循渐进
2. 来自资深DBA专家工作经验,贯穿课程,帮助深入理解知识应用
3. 把DBA工作用自动内容渗透到教学之中
4. 授课讲师具备深厚的技术基础以及行业背景经验
课程收益
1. 掌握MySQL的安装、数据类型、体系结构等内容;
2. 熟练运用MySQL索引、事务、锁、存储引擎的实践;
3. 解决MySQL监控&容量规划、运维&设计规范、常见问题处理的问题;
4. 灵活运用MySQL的复制、备份恢复等工具,解决实际问题。
受众人群
数据科学家、数据库管理员、分析师、高级工程师、系统架构师、项目经理,以及企业的CIO和CTO。
课程周期
1-5天(可按需调整)
课程大纲
标题 | 培训模块内容 | 培训大纲 |
1.初识MySQL(1H) | 初识MySQL及管理 | 通过和Oracle, SQL Server特性对比深入理解MySQL的适用场景 了解MySQL DBA的工作职责及技能需求 全面认识实际中MySQL DBA的工作环境,为自已准备一个接近于真实的环境 |
MySQL安装配置及体系结构 | 系统的学习MySQL安装(RPM, 二进制包,源码编译等),了解MySQL安装目录结构及作用,通过全面的了解MySQL启动(/etc/init.d/mysql, mysqld, mysqld_safe等)和关闭方式,什么数据库启动不了关闭不了这类问题永远不是问题 MySQL配置讲解及多实例管理规范(包含多版本共存)生产中往往通过安装多实例的形式来提高机器硬件的利用率。在了解MySQL对硬件的使用限制的同时,学会多事例的安装及操作 深入了解MySQL三层体系结构,掌握MySQL的工作机制 | |
2.MySQL安装部署规范(1H) | MySQL生产环境布署规范及建议 | 系统安装规范 MySQL安装规范 其它规范要点 |
3.MySQL数据类型(1H) | 常见数据类型及使用建议 | INT CHAR/VARCHAR DATETIME/TIMESTAMP 数据类型选择注意事项 数据类型选择注意事项 |
4.MySQL体系结构(2H) | MySQL三层体系结构 | 了解MySQL三层体系结构; 了解MySQL内存组成结构; 了解MySQL各层逻辑模块关系; |
MySQL常用引擎特点对比及选型建议 | 了解MySQL内置集成了哪些存储引擎,及各种存储引擎的区别; 了解几种关键引擎的区别及适用场景; | |
第三方引擎应用场景分析 | 了解Infobright引擎; 了解InfiniDB引擎; 了解TokuDB引擎; | |
5.MySQL索引(2H) | 索引基础知识 | 索引基础理论(二分查找、二叉树、B树、B+树、哈希索引) MySQL索引基本概念(聚集索引、主键索引、唯一索引、覆盖索引、联合索引等) |
深入理解MySQL索引 | MyISAM表索引特点 InnoDB表索引特点 索引优化案例 索引设计规范 | |
6.MySQL事务(1H) | MySQL事务并发 | 理解ACID; 理解并发事务可能存在的问题; 理解事务隔离级别; MySQL如何解决幻读的; MySQL的事务独特性; |
7.MySQL锁(2H) | MySQL锁总览 | MySQL锁简介 几个全局锁 |
InnoDB行锁 | InnoDB行锁实现 通过经典案例理解InnoDB行锁 InnoDB死锁 InnoDB锁监控 | |
8.MySQL存储引擎(3H) | 全面了解InnoDB的结构 | InnoDB介绍及发展历史 全面了解InnoDB的处理过程及相应的概念,深入研究InnoDB在DML中的开销及处理机制 全面识别InnoDB的结构及存储结构,深理解InnoDB的索引聚集表的处理特点,提高表结构设计优化认识 |
InnoDB关建配参数据讲解 | 详细讲解MySQL InnoDB的参数及意义 全面了解InnoDB的不同隔级别下处理特点及对性能的影响 | |
深入了解InnoDB | InnoDB后台进程讲解,表空间文件介绍,日志切换过程讲解 进行InnoDB监控 | |
9.MySQL监控&容量规划(1H) | 了解MySQL监控 | 如何能快速定位一个MySQL出现故障或是性能问题的原因,从分析可能存在的原因,了解监控的使用 常见监控工作的介绍: vmstat, iostat ,sar, top, orzdba, percona-tools中的一些工具 |
深入理解MySQL的一些状态指标 | 学习show [global] status的一些状态输出,从这些指标来了解MySQL的一些运行指标 information_schema库里表结构学习 | |
监控指标 | 如何判断数据库的性能是否正常?有哪些指标?怎么监控? 监控的指标?工具介绍 information_schema、performance_schema介绍 | |
容量规划 | 工程规划阶段,我们通常通过tps,qps,容量、IO等各个指标来觉得MYSQL的上线的规划部署情况,除了这些以外还有哪些方面也是我们参考的对象 | |
10.MySQL运维&设计规范(2H) | schema设计 | 字段设计规范 索引规范 其他规范 |
运维规范 | 系统安装规范 MySQL安装规范 其它规范要点 | |
11.全面优化MySQL(3H) | 性能瓶颈分析 | 性能瓶颈定位分析 故障分析方法,检查哪些指标,有什么工具可用 |
从硬件上优化MySQL | 从BIOS配置中调整CPU、内存相关设置,优化硬件性能 调整阵列卡配置,优化IO性能 其他硬件相关配置进行优化 | |
从系统上优化MySQL | 根据MySQL特性,调整内核相关参数进行优化 选择适当的文件系统,以达到更高IOPS | |
从MySQL配置上优化 | 关键参数调优 MySQL工作机制调整优化 | |
schema设计优化 | 根据业务特点优化SCHEMA设计 选择适当的表类型,字段类型 | |
SQL执行计划详解 | 解读EXPLAIN,找准优化入口 阅读SQL执行计划中的注意事项 如何改变执行计划提高SQL效率 如何判断SQL优化前后的效率对比 如何利用SQL执行计划的来进行SQL调优及附带案例 | |
通过架构设计来优化 | 大表设计建议 分析型数据表设计建议 架构设计优化要点、经验 | |
通过引入应用层优化 | 应用层优化要点、经验 | |
MySQL开发设计规范 | MySQL开发规范要点 | |
12.常见问题处理(1H) | 常见问题处理 | 慢查询如何处理 表或行对象被锁如何处理 数据迁移注意事项 表维护(表重整、索引重建)等注意事项 |
13.MySQL复制管理(3H) | 认识MySQL复制 | MySQL复制用处,复制的概念及原理实现,从整体上了解复制 部署复制的环境 复制中重要参数讲解 |
MySQL复制运维 | 如何控制复制切换中数据一致性 如何对复制的进行监控 复制中故障处理怎么不丢数据 在线复制结构变更,A复制到B,C ,更改为B复制到C,A, 变更为B->C->A或是B->A->C,复制结构任意切换的方法。从库严重故障,不停主库的情况下在线重建从库方法 主从数据一致性校验及修复方法 | |
基于复制架构方案 | 如何利用复制提高平台的处理能力 | |
14.MySQL备份恢复(2H) | 了解MySQL备份 | 备份恢复的基本概念及意义,了解逻辑备份,增量备份,物理备份,全量恢复,不完全恢复的意义及场景 |
备份的一些工具介绍 | 常见MySQL备份工具:mysqldump, mydumper, xtrabackup, MySQL企业备份工具使用及讲解 相应的进行恢复操作 | |
备份自动化 | 备份策略制定的方法 如何实现大规模备份及相应的注意事项 | |
15.自动化运维(3H) | MySQL运维自动化 | DBA日常工作 初始化类工作 智能巡检工作 MySQL自动化成功的任务 自动化工作开展 |
16.架构高可用架构设计(6H) | 架构高可用架构设计 | 业界常见高可用的架构及原理 MHA架构及原理及不足 MySQL InnoDB Cluster的架构原理及实战 自主实现MySQL高可用架构设计 基于Proxy模型的高可用实现 数据库拆分设计的原则 动态分库分表的规则设计 业界MySQL的四层架构设计 |