【问题标题】:auto_increment jumps by 3 and not 1auto_increment 跳 3 而不是 1
【发布时间】:2021-01-03 09:36:43
【问题描述】:

我注意到在我的 mysql 服务器中,auto_increment 设置递增 3,例如 3 6 9 12 15 等。

数据库中的所有表都有同样的问题。

我在 debian 10 上使用 mariadb 10.5。

可能是因为有一个 3 vps 的厨房集群吗?

MariaDB [(none)]> SHOW VARIABLES LIKE 'auto_inc%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| auto_increment_increment | 3     |
| auto_increment_offset    | 1     |
+--------------------------+-------+
2 rows in set (0.002 sec)

【问题讨论】:

标签: mysql debian galera mariasql mariadb-10.5


【解决方案1】:

他们把它设计成那样。你可以说这是使用 Galera 的一个限制。他们这样做是为了解决在多主集群中插入期间生成序列号作为主键时的冲突问题。

https://mariadb.org/auto-increments-in-galera/

【讨论】:

    【解决方案2】:

    如果您实际使用的是 Galera,则 auto_increment_increment 需要为 3(或者集群中有多少节点(服务器))。

    SHOW VARIABLES LIKE 'wsrep%';

    【讨论】:

    • 是的,我用的是galera,那么3 in 3是正常的。而且这不影响id int255结束比1 in 1快3倍?
    • @diaconuliviu - 什么是 int255?如果你的意思是TINYINT UNSIGNED,那么是的,每个节点在溢出之前可以插入大约 85 行。在指定数据类型时要考虑到这一点。同时auto_increment_offset 应该是 3 个节点的 3 个不同值。如果只插入一个节点,则限制为 85 行。如果您以正确的方式插入分布在 3 个节点上,它不会在大约 255 行之前溢出。
    猜你喜欢
    • 2016-03-01
    • 2011-04-05
    • 1970-01-01
    • 2019-02-11
    • 2020-03-21
    • 2011-09-29
    • 1970-01-01
    • 2021-03-14
    • 2017-07-10
    相关资源
    最近更新 更多