【TiDB 4.0 PCTA学习笔记】2.4~2.5.1@3班 郭升@神州数码

课程名称:【TiDB 4.0 PCTA学习笔记】2.4~2.5.1

学习时长:40min

课程收获:

  • 了解TiDB与MySQL之间的差异
  • 在TiDB中SQL的执行流程
  • 在TiKV中,KV的大致存储结构

2.4 TiDB与MySQL的差异

兼容性概览

  • 协议。MySQL的客户端工具、SDK基本都兼容
    image
  • 语法大部分兼容

TiDB不支持的

  • 存储过程
  • 触发器
  • 事件
  • 约束
  • auto increment
  • 有些索引不支持
    image
  • 一次添加多个列、修改列类型目前不支持
    image
  • 隔离级别
  • 其他的差异性
    image

2.5.1 在TiDB中一条SQL的生命周期

TiKV中的数据组织


KV的结构,索引编码方式:

一个示例:

SQL的一生


总结:

课后习题

  • TiDB是如何执行查询的?
    • TiDB首先接收到SQL文本,进行语法解析。然后进行逻辑优化,再进行物理优化(CBO),然后将执行计划分别下发给对应的TiKV,TiKV并行执行,返回结果给TiDB,TiDB进行结果汇总、处理,最后返回给客户端。
  • 可以分析查询计划吗?
    • 可以。还可以看见每个步骤的资源消耗。
  • 进行AVG查询的时候,TiKV为什么是返回sum、count的值,而不是直接计算avg?
    • 因为AVG是按照某个字段进行分组计算均值。同一分组数据可能在不同的TiKV之间,所以应该在TiDB里面汇总后计算均值。