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

Erratic increment in Mysql Auto increment column

我看到 MySql table 的 AUTO_INCREMENT 列具有异常大的值。 不知何故,我试图了解这种情况是如何发生的,以避免这种情况发生。

当前场景:

  1. 多个 table 位于每个 AUTO_INCREMENT 列中。所有人都有这个问题。
  2. 我经常跨 table 进行批量提交。这会是罪魁祸首吗?
  3. 同一个 mysql 服务器上有 2 个数据库。这会干扰吗?

我尝试阅读和理解 mysql auto_increment doc 并发现批量提交可能是个问题。但是我不确定 innodb_autoinc_lock_mode 我应该切换到什么?

值不稳定增量的快照。

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

真的有千差万别吗?

我在 "normalization" table 中看到过这样的情况,它使用 INSERT IGNORE 来添加条目或默默地不做任何事情。问题是 "doing nothing" 包括分配一个 auto_inc id,但没有使用它。

IODKU、ROLLBACK 和其他一些东西 "burn" ids。

http://mysql.rjweb.org/doc.php/staging_table讨论了一种非燃烧的高速标准化方法。

可能发生的另一件事...由于在 COMMIT 完成之前其他线程看不到该 ID,因此其他线程可能会看到间隙,然后稍后会看到丢失的 ID。这对于使用 MySQL 作为排队机制来说可能很烦人,而你是 "continuing where you left off".