课程名称: 201+2.5.1 The Lifecycle of a SQL Statement(在 TiDB 中一条 SQL 的生命周期)
学习时长:20分钟
课程收获:了解SQL语句在TiDB中的生命周期
课程内容:
讲师:张原嘉
1、 TiDB架构
TiDB架构
存储层TiKV
计算层TiDB
控制层 PD
分配全局唯一的时间戳,作为事务ID使用
存储TiKV中Region的信息
TiKV架构
TiKV中的数据被划分为多个Region,每个Region有多个副本以保证高可用,Region副本之间通过Raft协议保证一致性。
这种结构使得TiKV易扩展,保证高可用和副本之间的一致性。
2、 数据组织
TiDB层,数据以表(行和列)组织
TiKV层,数据以有序的Key-value对组织
表中普通数据
T_r => [col1,col2,col3]
带唯一属性的索引
T_i_indexedColumnsValue => rowID
非唯一属性的索引
T_iindexedColumnsValue rowID => nil
3、 SQL生命周期
Sql解析生成语法树AST;
AST丢给逻辑优化器进行逻辑类的优化,生成逻辑计划;
物理优化,根据逻辑计划,结合当前的统计信息,生成代价最小的物理计划;
物理计划交付执行器进行执行,执行过程中会通过分布式SQL层访问各TiKV节点获取数据,执行过程也会将一部分执行逻辑下推到TiKV节点执行。
4、 分布式执行引擎