【TiDB 4.0 PCTA 学习笔记】- 3.7.5 Partition Table(TiDB 的分表)@1班+Kun

课程名称:(301)3.7.5 Partition Table(TiDB 的分表)

学习时长:15min

课程收获:掌握分区表的种类以及使用方法,以及了解分区裁剪的原理

课程内容:分区表、分区裁剪

range partition:可以按单个列进行分区,或按多个列的组成的函数进行分区;less than + 整型;分区表达式包含的列必须包含在唯一索引中
适用场景:需要按范围删除数据,删除数据变成删除分区;数据有时间列,并且需要按照时间范围查询;小表有读热点,可以使用分区来解决热点

range columns partition :只支持单个列作为range表达式;支持按整型,字符串,时间进行分区

hash partition:单点查询性能高,范围查询性能差;分区表达式包含的所有列,必须包含在所有唯一 索引中;NULL值默认会被划分到第0个分区;表达式分区必须返回整型
用于单点查询,范围查询会导致全表扫描;可解决小表读热点

分区表内部原理
分区裁剪:通过不扫描不匹配的分区来达到优化;不好的SQL会导致分区裁剪失败,导致全表扫描
范围分区的裁剪

哈希分区裁剪:优化器需要了解分区表达式中所有列的值;需要指定具体值,不能只指定范围值
分区裁剪发生在优化器逻辑优化阶段,一些运行时才能得到结果的条件并不能作为分区裁剪的条件

学习过程中遇到的问题或延伸思考:

  • 问题 1:
  • 问题 2:
  • 延伸思考 1:
  • 延伸思考 2:

学习过程中参考的其他资料