课程背景
MySQL 作为全球最流行的开源数据库,分布式 MySQL 架构已然成为腾讯、阿里、网易、新浪等大型互联网公司核心业务的数据储存关键。
作为业务开发者,掌握 MySQL 内核,在实际应用中发挥 MySQL 的优势,设计出高可用架构,才能早日实现业务纵深。
你会学到什么?
专栏结合讲师在游戏、电商、快递、云计算、金融等行业的一线实战经验,从业务角度分享MySQL 数据库的架构设计之道。从枯燥的理论拉近到互联网真实的海量并发环境,提供完整、成熟的架构设计知识体系和方法论。
模块一:表结构设计
这一模块将从最初的一个空数据库开始,讲述如何使用MySQL数据库中常见的数据类型,去构建一张正确的核心业务表。例如,用户ID的设计、密码的存储设计、JSON类型的使用,以及在海量环境下如何通过表压缩技术,提升数据库容量与性能。
模块二:索引调优
这一模块在表的基础上,深入分析索引的特性,触达复杂 SQL 索引的设计与调优,比如多表 JOIN、子查询、分区表的问题。学完这部分内容之后,你能解决线上所有的 SQL 问题,不论是 OLTP 业务,还是复杂的 OLAP 业务。
模块三:高可用架构设计
有了表和索引,业务可以运行。但真正生产环境还需要一套有效的高可用架构,从而才能保证业务的连续性。本模块将聚焦业界常见的 MySQL 高可用架构、相关组件。特别是会分享在金融领域中,如何做到真正的数据可靠且可用。
模块四:分布式架构设计
单机的容量总是有限的,而业务一旦互联网化,数据将会无垠的增长,请求也会急剧增长。分布式是解决海量访问互联网的标准架构。这一模块中,会在前三模块已完成的设计架构基础上,将其分布式化,讲解如何设计出一个海量访问的、高性能的、高可用的,分布式 MySQL 数据库架构。
模块五:终极实战
这一模块会介绍分布式架构中,业务在生产环境中比较头疼的一些问题,如:数据删除时如何不影响业务请求耗时,热点行更新等问题;并讲述如何从架构设计角度,解决上述这些疑难杂症。
课程目录
开篇词
开篇词 | 从业务出发,开启海量 MySQL 架构设计
表结构设计篇
01 | 数字类型:避免自增踩坑
02 | 字符串类型:不能忽略的 COLLATION
03 | 日期类型:TIMESTAMP 可能是巨坑
04 | 非结构存储:用好 JSON 这张牌
05 | 表结构设计:忘记范式准则
06 | 表压缩:不仅仅是空间压缩
07 | 表的访问设计:你该选择 SQL 还是 NoSQL?
索引调优篇
08 | 索引:排序的艺术
09 | 索引组织表:万物皆索引
10 | 组合索引:用好,性能提升 10 倍!
11 | 索引出错:请理解 CBO 的工作原理
12 | JOIN 连接:到底能不能写 JOIN?
13 | 子查询:放心地使用子查询功能吧!
14 | 分区表:哪些场景我不建议用分区表?
高可用架构篇
15 | MySQL 复制:最简单也最容易配置出错
16 | 读写分离设计:复制延迟?其实是你用错了
17 | 高可用设计:你怎么活用三大架构方案?
18 | 金融级高可用架构:必不可少的数据核对
19 | MGR:新一代的 MySQL 高可用架构
20 | 高可用套件:选择这么多,你该如何选?
21 | 数据库备份:备份文件也要检查!
分布式架构篇
22 | 分布式数据库架构:彻底理解什么叫分布式数据库
23 | 分布式数据库表结构设计:如何正确地将数据分片?
24 | 分布式数据库索引设计:二级索引、全局索引的最佳设计实践
25 | 分布式数据库架构选型:分库分表 or 中间件 ?
26 | 分布式设计之禅:全链路的条带化设计
27 | 分布式事务:我们到底要不要使用 2PC?
28 | 分布式数据库扩缩容:如何做好扩缩容架构设计?
终极实战篇
29 | 如何优雅地删除生产环境中的大表?
30 | 历史数据库系统:不可或缺的迁移系统
31 | 金融行业如何高效实现利息的计算?
32 | 业务层高可用系统设计:Fast-Fail + 幂等 + 限流
33 | 热点行更新:关系型数据库的最大挑战
34 | COUNT(*) 优化:极简艺术之道
35 | 遇到大数据分析需求怎么办?
36 | 如何在线上做数据容灾演练?
结束语
结束语 | 撸起袖子干,未来星辰大海
讲师介绍
姜承尧,腾讯金融数据平台与研发中心总监
具备 15 年MySQL 数据库从业经验,现负责腾讯金融科技所有相关数据库业务系统的开发、运维和架构设计。MySQL 社区 IMG 社区创始人;曾出版多本畅销书籍:《MySQL技术内幕:InnoDB存储引擎》(豆瓣)、《MySQL技术内幕:SQL编程》(豆瓣)、《MySQL内核:InnoDB存储引擎》(豆瓣),收获众多忠实读者。2019 年 7 月被 Oralce 公司授予 Oracle MySQL ACED 头衔。