【 TiDB 使用环境】生产环境
【 TiDB 版本】
V6.5.5
【复现路径】
从5.4.3升级到6.5.5
【遇到的问题:问题现象及影响】
自增主键基本都是奇数
测试了一下,跟NONCLUSTERED 有关系,5.4.3没有这个问题,这个怎么处理
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
【 TiDB 使用环境】生产环境
【 TiDB 版本】
V6.5.5
【复现路径】
从5.4.3升级到6.5.5
【遇到的问题:问题现象及影响】
自增主键基本都是奇数
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
AUTO_ID_CACHE=1
改成1试试,tidb到高版本可以全局递增了,也不太影响性能。
应该是自增步长的问题,你执行如下sql语句试试ALTER TABLE table_name AUTO_INCREMENT_INCREMENT = 1;不过这个应该是session级别的,如果想全局的,最好该配置文件,并重启
嗯嗯,步长是1,只不过默认被分配给隐藏id和你自己设置的id了。不过尽量还是不要设置为自增,容易有热点问题
文档是聚簇表,你是非聚簇表,不一样的,聚簇表主键没有_tidb_rowid
现在讨论非聚簇表的问题
按文档说的,公用一个分配器,那插入一行数据会自增2个连续的数,一个给了自增列,一个给了_tidb_rowid
是的,所以ID总是奇数
应该也不算bug吧,只是不同版本时同一个分配器在分配自增数据时做了区分,一个是一条数据产生的两个值都给了自增列,一个是自增列和rowid各一个。其实没必要太纠结这个,设计主键时尽量不要使用递增
不是bug
你应该有两个tidb 你连了其中一个的原因
那这样应该是正常的吧。两个共用了一个分配器。
把AUTO_INCREMENT_OFFSET调大一些试试
用聚簇表一劳永逸
自增步长设置的问题