【赵渝强老师】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集群中的数据;
  • 本地执行器会接收所有查询得到的数据,并最终将数据通过会话的上下文信息返回给客户端
相关推荐
xiao-xiang6 小时前
redis-保姆级配置详解
数据库·redis
白鹭8 小时前
MySQL(多表查询练习)
数据库·mysql
吃掉你也没关系吧10 小时前
【postgresql】一文详解postgresql中的统计模块
sql·postgresql
xiao-xiang12 小时前
redis-sentinel基础概念及部署
数据库·redis·sentinel
AI 嗯啦12 小时前
SQL详细语法教程(三)mysql的函数知识
android·开发语言·数据库·python·sql·mysql
时序数据说13 小时前
国内时序数据库概览
大数据·数据库·物联网·时序数据库·iotdb
杰克尼13 小时前
mysql-条件查询案例
数据库·mysql
运维行者_16 小时前
使用Applications Manager进行 Apache Solr 监控
运维·网络·数据库·网络安全·云计算·apache·solr
千层冷面18 小时前
Flask ORM 查询详解:Model.query vs db.session.query vs db.session.execute
数据库·python·django·flask