【赵渝强老师】TiDB SQL层的工作机制
TiDB节点的SQL层,即TiDB Server,它负责将SQL翻译成Key-Value操作,将其转发给共用的分布式Key-Value存储层TiKV,然后组装TiKV返回的结果,最终将查询结果返回给客户端。这一层的节点都是无状态的,节点本身并不存储数据,节点之间完全对等。因此很容易实现失败迁移,从而支持容错。下图详细说明了TiDB SQL层的工作机制。
视频讲解如下 |
---|
【赵渝强老师】TiDB SQL层的工作机制 |
TiDB节点的SQL层主要负责接收并执行客户端发送的SQL语句,其具体的执行过程如下:
- 首先SQL层会从会话的上下文中判断该客户端是否能够访问数据库集群;
- 接下来会将客户端的SQL语句发送给SQL解析器,SQL解析器负责解析SQL的语法和语义,并生成SQL语法树发送给逻辑优化器;
- 逻辑优化器负责重写SQL语句以提高SQL的执行效率,并将生成的逻辑执行计划发送给物理优化器;
- 物理优化器会根据数据库的统计信息生成最终的物理执行计划,并交给本地执行器和分布式执行器;
- 本地执行器负责执行本地SQL,例如查询本地的缓存表;
- 分布式执行器负责执行分布式SQL查询TiKV集群中的数据;
- 本地执行器会接收所有查询得到的数据,并最终将数据通过会话的上下文信息返回给客户端