串行或序列是否确保尤加字节中数据的唯一性?



我们想从mysql数据库迁移到Yugabyte(PostgreSQL(数据库。我们在 YugabyteDB 中找到了 2 个用于 mysql 的替代方案 AUTO_INCREMENT ((

  1. 串行
  2. 序列

出于某种原因,我们不喜欢使用 UUID。在这种情况下,串行或序列是否确保数据的唯一性?(我们有 6 个节点(

实际上serial/bigserial下面创建一个序列并使用它来生成唯一的 id。 即使在分布式系统中,序列也会生成唯一的值。

您还需要使用缓存以获得更好的性能,从而减少生成新值的 rpc 数量:https://docs.yugabyte.com/latest/api/ysql/commands/ddl_create_sequence/#cache

唯一性在数据库端由主键、唯一索引约束强制执行。在这种情况下,最好将 id 列作为主键。

因此,BIGINT列与具有大缓存的序列一起使用,并将id作为主键。