我有一个 MariaDB Galera Cluster(3 个节点),我设置uid
自动增加并成为表的主键
`uid | int(11) | NO | PRI | NULL | auto_increment`.
MariaDB [hello_cluster]> select uid from table order by uid limit 10;
+-----+
| uid |
+-----+
| 3 |
| 6 |
| 9 |
| 12 |
| 15 |
| 18 |
| 21 |
| 24 |
| 27 |
| 30 |
+-----+
我尝试了以下命令,但不起作用
alter table uid AUTO_INCREMENT=1
这是设计使然,并报告于MariaDB Galera 集群 - 已知限制:
不要依赖自动增量值来保证顺序。 Galera使用基于自增增量的机制来产生唯一的不冲突的序列,因此在每个单个节点上序列会有间隙.
其合理性解释为使用多主管理自动增量,这也是为什么观察到的自动增量与簇数具有相同的步长。
MySQL 有系统变量 auto_increment_increment 和 auto_increment_offset 用于管理多主环境中的自动增量“序列”。使用这些变量,可以设置多主复制,其中每个主节点交错中的自动递增序列,并且集群中不应发生冲突。无论哪个主控获得插入。
即使没有集群,由于事务回滚和删除的记录,依赖自动增量列成为密集序列也很少是一个“好”主意。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)