【赵渝强老师】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集群中的数据;
  • 本地执行器会接收所有查询得到的数据,并最终将数据通过会话的上下文信息返回给客户端
相关推荐
u01092727115 分钟前
使用Plotly创建交互式图表
jvm·数据库·python
爱学习的阿磊16 分钟前
Python GUI开发:Tkinter入门教程
jvm·数据库·python
tudficdew1 小时前
实战:用Python分析某电商销售数据
jvm·数据库·python
sjjhd6521 小时前
Python日志记录(Logging)最佳实践
jvm·数据库·python
Configure-Handler1 小时前
buildroot System configuration
java·服务器·数据库
2301_821369612 小时前
用Python生成艺术:分形与算法绘图
jvm·数据库·python
电商API_180079052473 小时前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫
2401_832131953 小时前
Python单元测试(unittest)实战指南
jvm·数据库·python
打工的小王3 小时前
redis(四)搭建哨兵模式:一主二从三哨兵
数据库·redis·缓存
Anarkh_Lee4 小时前
【小白也能实现智能问数智能体】使用开源的universal-db-mcp在coze中实现问数 AskDB智能体
数据库·人工智能·ai·开源·ai编程