SHARD_ROW_ID_BITS 和 PRE_SPLIT_REGION 参数不理解原理

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:tidb 4.0
  • 【问题描述】:SHARD_ROW_ID_BITS 和 PRE_SPLIT_REGION 两个参数的疑惑

我看了官方文档还有论坛,很多地方都有如何避免热点块的问题,基本都是这两个参数 SHARD_ROW_ID_BITS 和 PRE_SPLIT_REGION (1)SHARD_ROW_ID_BITS 和 PRE_SPLIT_REGION 参数使用的场景是主键是字符类型或者无主键的情况 (2)确没有明确说明,如果主键是bigint的情况如何避免热点块的问题,这里选取的主键是业务主键,也是递增的,是 PRE_SPLIT_REGION 参数嘛 还是通过在建表的时候使用 预切分 Region 的功能

SPLIT TABLE table_name [INDEX index_name] BETWEEN (lower_value) AND (upper_value) REGIONS region_num

(3)SHARD_ROW_ID_BITS 和 PRE_SPLIT_REGION 这两个参数在原理方面也比较疑惑,如何做到打散热点块

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。

在表的主键设计方面,打散热点块,如果主键是bingint业务主键,并且是是递增的,例如 image

主键如何设计呢

参考下这个帖子看下,如果还有疑问,可以继续跟帖 shard_row_id_bits使用原理咨询