课程名称:【TiDB 4.0 PCTA学习笔记】2.4~2.5.1
学习时长:40min
课程收获:
- 了解TiDB与MySQL之间的差异
- 在TiDB中SQL的执行流程
- 在TiKV中,KV的大致存储结构
2.4 TiDB与MySQL的差异
兼容性概览
- 协议。MySQL的客户端工具、SDK基本都兼容
- 语法大部分兼容
TiDB不支持的
- 存储过程
- 触发器
- 事件
- 约束
- auto increment
- 有些索引不支持
- 一次添加多个列、修改列类型目前不支持
- 隔离级别
- 其他的差异性
2.5.1 在TiDB中一条SQL的生命周期
TiKV中的数据组织
KV的结构,索引编码方式:
一个示例:
SQL的一生
总结:
课后习题
- TiDB是如何执行查询的?
- TiDB首先接收到SQL文本,进行语法解析。然后进行逻辑优化,再进行物理优化(CBO),然后将执行计划分别下发给对应的TiKV,TiKV并行执行,返回结果给TiDB,TiDB进行结果汇总、处理,最后返回给客户端。
- 可以分析查询计划吗?
- 可以。还可以看见每个步骤的资源消耗。
- 进行AVG查询的时候,TiKV为什么是返回sum、count的值,而不是直接计算avg?
- 因为AVG是按照某个字段进行分组计算均值。同一分组数据可能在不同的TiKV之间,所以应该在TiDB里面汇总后计算均值。