我正在考虑使用 ULID(通用唯一词典可排序标识符)作为 MySQL 表中的主键,我想知道 ULID 是否满足 MySQL 的聚集索引设计。我读过 MySQL 中的聚集索引根据索引列确定表中行的物理顺序。但是,我不确定可按字典顺序排序的 ULID 是否适合 MySQL 中的聚集索引。
这是我的具体问题:
ULID 能否有效地充当具有聚集索引的 MySQL 表中的主键?
MySQL 会根据 ULID 的字典顺序有效地组织数据吗?
在 MySQL 中使用 ULID 作为主键和聚集索引时是否存在任何潜在的性能或可扩展性问题?
没问题,但几乎没有必要。
CHAR(26) CHARACTER SET ascii
(26 字节)或 BINARY
等效值的任何大小。PRIMARY KEYs
可以有上述数据类型。现在可用的 UUID(MySQL 8 和 MariaDB)可以转换为按时间顺序排列的
BINARY(16)
(16 字节)。