ULID是否满足MySQL主键聚集索引设计?

问题描述 投票:0回答:1

我正在考虑使用 ULID(通用唯一词典可排序标识符)作为 MySQL 表中的主键,我想知道 ULID 是否满足 MySQL 的聚集索引设计。我读过 MySQL 中的聚集索引根据索引列确定表中行的物理顺序。但是,我不确定可按字典顺序排序的 ULID 是否适合 MySQL 中的聚集索引。

这是我的具体问题:

ULID 能否有效地充当具有聚集索引的 MySQL 表中的主键?

MySQL 会根据 ULID 的字典顺序有效地组织数据吗?

在 MySQL 中使用 ULID 作为主键和聚集索引时是否存在任何潜在的性能或可扩展性问题?

mysql clustered-index ulid
1个回答
0
投票

没问题,但几乎没有必要。

  • 它可以是
    CHAR(26) CHARACTER SET ascii
    (26 字节)或
    BINARY
    等效值的任何大小。
  • 是的,
    PRIMARY KEYs
    可以有上述数据类型。
  • 由于 PK 被隐式添加到每个辅助密钥中,因此大小很重要。

现在可用的 UUID(MySQL 8 和 MariaDB)可以转换为按时间顺序排列的

BINARY(16)
(16 字节)。

© www.soinside.com 2019 - 2024. All rights reserved.