我看到MySql表的AUTO_INCREMENT
列的值不正常。
不知何故,我试图了解这种情况如何发生以避免它。
目前的情况:
AUTO_INCREMENT
列都有多个表。所有人都有这个问题。我试图阅读并理解mysql auto_increment doc并认为批量提交可能有问题。但我不确定应切换到innodb_autoinc_lock_mode
的是什么?
值不稳定增量的快照。
所有MySql系统变量都是默认值且未更改。
答案 0 :(得分:2)
真的存在千差距吗?
我在“规范化”表中看到了这样的情况,该表使用INSERT IGNORE
来添加条目或者无声地执行任何操作。问题在于“无所事事”包括分配auto_inc id,但不使用它。
IODKU,ROLLBACK和其他一些东西也会“烧掉”ids。
http://mysql.rjweb.org/doc.php/staging_table讨论了一种以高速率进行标准化的非刻录方式。
可能发生的另一件事......由于在COMMIT
完成之前其他线程看不到id,其他线程可能会看到间隙,然后会看到缺少的id。对于使用MySQL作为排队机制而言,这可能很烦人,而且你“继续在你离开的地方继续”。