TiDB Server架构
TiDB作为SQL层,对外暴露MySQL协议的连接,负责接受客户端的连接,执行SQL的解析和优化,生成执行计划,到TiKV中,将数据读取,到TiDB Server中的缓存中去,再返回给用户
解析SQL,将实际的数据读取、请求,转化为TiKV节点
TiDB Server作用
- 处理客户端的连接 Protocol Layer
- SQL语句的解析与编译 Parse 、 Compile
- 关系型数据与KV的转化
- SQL语句的执行 Executor 、 DistSQL 、 KV
- Online DDL 的执行 schema load、worker、start job
- 垃圾回收
- 热点小表缓存V6.0 cache table(表的数据量不大,不经常被修改、但是访问非常频繁,热点表)
SQL语句的解析与编译
parse生成AST
将AST语法树传递给Compile,去优化
关系型数据与KV的转化
编号作为主键(聚簇表,用表的主键)
TiKV将表转化成键值对
让key在整个数据库层面是唯一的,加一个表的编号: