2.5.1 The Lifecycle of a SQL Statement(在 TiDB 中一条 SQL 的生命周期)

学习时长:

130min

课程收获:

了解 TiDB 的基本架构及它是怎么处理 SQL 的

课程内容:

本课程简要介绍 TiDB 的基本架构,并以一条查询 SQL 为例,介绍 TiDB 是怎么把关系型数据变换为 KV 数据存储在 TiKV 中,同时介绍 SQL 会怎么被 TiDB 执行。

TiDB 的基本架构

PD Cluster

PD的两个作用:

  • 分配全局唯一时间戳TSO,作为事务的ID
  • 为TiDB提供数据位置信息

TiKV架构

  • 数据被划分为多个region,每个region有多个副本,保证高可用
  • 多通过raft算法实现一致性
  • 数据组织

    • 对于表中的行数据进行如下转换:

    • 如果表中存在二级索引的列,则进行如下转换:

  • 转换例子

一条SQL的生命周期

仅介绍查询类SQL

  • 查询优化

    • SQL解析器=>AST
    • 逻辑优化器
    • 物理优化器
    • 统计信息
  • 查询执行

    • Root executor
    • DistSQL
    • Coprocessor executor(计算下推)
  • 举例说明

TiDB 源码阅读

TiKV 源码阅读

学习过程中参考的其他资料