我们想从 mysql 数据库迁移到 Yugabyte(PostgreSQL) 数据库。我们在 YugabyteDB 中为 mysql AUTO_INCREMENT () 找到了 2 个替代方案
- 串行
- 顺序
出于某种原因,我们不喜欢使用 UUID。在那种情况下,串行或顺序是否确保数据的唯一性?(我们有 6 个节点)
我们想从 mysql 数据库迁移到 Yugabyte(PostgreSQL) 数据库。我们在 YugabyteDB 中为 mysql AUTO_INCREMENT () 找到了 2 个替代方案
出于某种原因,我们不喜欢使用 UUID。在那种情况下,串行或顺序是否确保数据的唯一性?(我们有 6 个节点)
实际上serial/bigserial
在下面创建一个序列并使用它来生成唯一的 id。即使在分布式系统中,序列也会生成唯一值。
您还需要使用缓存来获得更好的性能,从而减少生成新值的 RPC 数量:https ://docs.yugabyte.com/latest/api/ysql/commands/ddl_create_sequence/#cache
唯一性由主键、唯一索引、约束在数据库端强制执行。在这种情况下,最好将 id 列作为主键。
因此,将BIGINT
列与具有大缓存的序列一起使用,并将id
主键设为主键。