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%