自增主键是否会形成热点?

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

  • 【TiDB 版本】:4.0stable
  • 【问题描述】:自增主键是否会形成热点?

我在常见热点文档中看到以下描述: TiDB alter-primary-key 参数设置为 false 时,会使用表的整数型主键作为 RowID,因为 SHARD_ROW_ID_BITS 会改变 RowID 生成规则,所以此时无法使用 SHARD_ROW_ID_BITS 选项。在 alter-primary-key 参数设置为 true 时,TiDB 在建表时不再使用整数型主键作为 RowID,此时带有整数型主键的表也可以使用 SHARD_ROW_ID_BITS 特性。

那么如果我的表使用自增主键的话,还需要将alter-primary-key设置成true,然后使用SHARD_ROW_ID_BITS选项来避免热点吗?

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

  1. 如果你的表是整数类型的主键,可以这样考虑。
  2. 不过可以考虑下是否能去掉自增主键
1 个赞

目前想迁进去的含有较多业务使用自增id来实现的。
所以是想确整数自增主键如果不设alter-primary-key是否一定会形成写热点。

并不是说一定会形成热点,二是容易形成热点,自增主键插入数据是连续的,当单个 region 读写超过热点的阈值,将会被判定为热点。可以通过监控 overview - pd 看到。

可以做一个简单的压测,sysbench 就是典型的自增主键,批量插入数据。

规避的办法可以看下下面文章

1 个赞