Mysql自动增量列中的不稳定增量

时间:2018-01-17 23:08:53

标签: mysql innodb

我看到MySql表的AUTO_INCREMENT列的值不正常。 不知何故,我试图了解这种情况如何发生以避免它。

目前的情况:

  1. 每个单独的AUTO_INCREMENT列都有多个表。所有人都有这个问题。
  2. 我经常在表间进行批量提交。这可能是罪魁祸首吗?
  3. 同一个mysql服务器上有2个数据库。可以干涉吗?
  4. 我试图阅读并理解mysql auto_increment doc并认为批量提交可能有问题。但我不确定应切换到innodb_autoinc_lock_mode的是什么?

    值不稳定增量的快照。

    enter image description here

    所有MySql系统变量都是默认值且未更改。

1 个答案:

答案 0 :(得分:2)

真的存在千差距吗?

我在“规范化”表中看到了这样的情况,该表使用INSERT IGNORE来添加条目或者无声地执行任何操作。问题在于“无所事事”包括分配auto_inc id,但不使用它。

IODKU,ROLLBACK和其他一些东西也会“烧掉”ids。

http://mysql.rjweb.org/doc.php/staging_table讨论了一种以高速率进行标准化的非刻录方式。

可能发生的另一件事......由于在COMMIT完成之前其他线程看不到id,其他线程可能会看到间隙,然后会看到缺少的id。对于使用MySQL作为排队机制而言,这可能很烦人,而且你“继续在你离开的地方继续”。