对alter-primary-key参数的解释

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

  • 【TiDB 版本】:4.0
  • 【问题描述】:

官网文档内关于主键约束有这么一条

默认情况下,TiDB 还有一个额外限制,即一旦一张表创建成功,其主键就不能再改变。如果需要添加/删除主键,需要在 TiDB 配置文件中将 alter-primary-key 设置为 true ,并重启 TiDB 实例使之生效。

当开启添加/删除主键功能以后,TiDB 允许对表添加/删除主键。但需要注意的是,对于在未开启该功能时创建的整数类型的主键的表,即使开启添加/删除主键功能,也不能删除其主键约束。

请问alter-primary-key=true 这个操作是在底层做了一套“影子主键”,还是真的允许对主键进行重构?

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

并非真正的主键重构,如你所说是一个 “影子主键”,所以老主键即使在开启了这个开关之后也是无法删除的。这个功能是个中和的方案,后面可以关注下 cluster index