TiDB 学习笔记(一)

引言

TiDB Academy 提供了 TiDB 的视频学习资源,方便了解这个全新的数据库。在学习过程中,做了这个系列的笔记,方便后期回顾。

课程概要

这个系列课程是为 MySQL DBA 准备的高级课程。讲师也假设学习者拥有 3~5 年的 MySQL 运维和使用经验。因为在讲解的过程中,会将 TiDB 的一些概念直接和 MySQL 对比(虽然并不是 MySQL DBA,但不能阻挡我学习的脚步~)。

我们将在这个系列课程中学习到很多关于如何设计和实现一个类似 TiDB 这样复杂的分布式数据库的细节。总的来说,将会涵盖如下几个话题:

  1. TiDB 的架构设计(OLTP/OLAP 支持)?
  2. 如何做到水平扩展,同时保持数据强一致性和高可用的?
  3. 在线 DDL 算法和实现

课前准备

为了跟着教程一步步学习,自然是需要有个环境可以部署 TiDB 的咯。Google Cloud Platform 首次使用,第一年免费赠送 $300。只需要一张 Visa 信用卡绑定就可以了。

2018-12-02-14-08-05

分布式数据库介绍

  1. 20 世纪 60 年代,第一代数据库诞生。主要特点:

    1. 非关系型
    2. 访问存储记录的语言不统一,与存储格式紧密关联
  2. 20 世纪 70 年代,关系模型和 SQL 诞生

  3. 20 世纪 70 年代到 21 世纪初,基于 SQL 的关系型数据占据统治地位。主要特点:

    1. 数据库厂商很多,均支持 SQL
    2. 存储过程语言很多,且移植性很差
    3. 面向单机设计
  4. 2000 年中期,NoSQL 数据库诞生。主要特点:

    1. 扩展性很好
    2. 缺乏事务支持
    3. 增加了应用程序负担,复杂性提升
  5. 新一代 NewSQL 诞生:

    1. 类似 NoSQL 的易于扩展性
    2. 关系型数据库
    3. 支持 SQL
    4. 强一致性保证
  6. TiDB,NewSQL 家族成员:

    1. 师承 Google Spanner 架构
    2. 支持 MySQL 网络协议
    3. 应用层基本无痛切换 TiDB
    4. 使用乐观锁模型(一个比较大的差别),可参考 这段介绍

2018-12-02-14-47-04

0%