引言
TiDB Academy 提供了 TiDB 的视频学习资源,方便了解这个全新的数据库。在学习过程中,做了这个系列的笔记,方便后期回顾。
课程概要
这个系列课程是为 MySQL DBA 准备的高级课程。讲师也假设学习者拥有 3~5 年的 MySQL 运维和使用经验。因为在讲解的过程中,会将 TiDB 的一些概念直接和 MySQL 对比(虽然并不是 MySQL DBA,但不能阻挡我学习的脚步~)。
我们将在这个系列课程中学习到很多关于如何设计和实现一个类似 TiDB 这样复杂的分布式数据库的细节。总的来说,将会涵盖如下几个话题:
- TiDB 的架构设计(OLTP/OLAP 支持)?
- 如何做到水平扩展,同时保持数据强一致性和高可用的?
- 在线 DDL 算法和实现
课前准备
为了跟着教程一步步学习,自然是需要有个环境可以部署 TiDB 的咯。Google Cloud Platform 首次使用,第一年免费赠送 $300。只需要一张 Visa 信用卡绑定就可以了。
分布式数据库介绍
20 世纪 60 年代,第一代数据库诞生。主要特点:
- 非关系型
- 访问存储记录的语言不统一,与存储格式紧密关联
20 世纪 70 年代,关系模型和 SQL 诞生
20 世纪 70 年代到 21 世纪初,基于 SQL 的关系型数据占据统治地位。主要特点:
- 数据库厂商很多,均支持 SQL
- 存储过程语言很多,且移植性很差
- 面向单机设计
2000 年中期,NoSQL 数据库诞生。主要特点:
- 扩展性很好
- 缺乏事务支持
- 增加了应用程序负担,复杂性提升
新一代 NewSQL 诞生:
- 类似 NoSQL 的易于扩展性
- 关系型数据库
- 支持 SQL
- 强一致性保证
TiDB,NewSQL 家族成员:
- 师承 Google Spanner 架构
- 支持 MySQL 网络协议
- 应用层基本无痛切换 TiDB
- 使用乐观锁模型(一个比较大的差别),可参考 这段介绍