Hai*_*ang 13 mysql primary-key mariadb
我有一个MariaDB Galera集群(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 |
+-----+
Run Code Online (Sandbox Code Playgroud)
我尝试了以下命令,但它不起作用
alter table uid AUTO_INCREMENT=1
Run Code Online (Sandbox Code Playgroud)
use*_*740 19
这是设计使然并在MariaDB Galera Cluster中报告- 已知限制:
不要依赖自动增量值来顺序.Galera使用基于自动增量增量的机制来产生唯一的非冲突序列,因此在每个节点上序列都会有间隙.
在使用多主机管理自动增量中解释了理性,这也是观察到的自动增量与群集数量具有相同步骤的原因.
MySQL具有系统变量auto_increment_increment和auto_increment_offset,用于管理多主环境中的自动增量"序列".使用这些变量,可以设置多主复制,其中每个主节点中的自动递增序列交错,并且群集中不应发生冲突.无论哪个主人获得INSERT.
即使没有集群,由于事务回滚和删除的记录,依赖自动增量列成为密集序列也很少"好".