UUID 最佳实践

    • UUID 可以在多个系统生成,而不会产生冲突。某些情况下可以减少到 TiDB 的网络往返次数,从而提高性能。
    • 绝大多数编程语言和数据库系统都支持 UUID。

    UUID 文本是一个包含 36 字符的字符串,如 ab06f63e-8fe7-11ec-a514-5405db7aad56。使用 UUID_TO_BIN() 可将 UUID 文本格式转换为 16 字节的二进制格式。这样,你可以将文本存储在 BINARY(16) 列中。检索 UUID 时,可以使用 BIN_TO_UUID() 函数再将其转换回文本格式。

    UUID 格式二进制顺序和聚簇主键

    同时,你也可以在 UUID 主键上显式设置 CLUSTERED 选项来避免热点问题。

    在如下的,你可以看到写入操作集中在 表的单个 Region 中,而这个表中的二进制格式字段顺序被调换过。

    1. CREATE TABLE `uuid_demo_2` (
    2. `uuid` varbinary(16) NOT NULL,
    3. `c1` varchar(255) NOT NULL,
    4. )

    UUID 也可以在 MySQL 中使用。MySQL 8.0 引入了 BIN_TO_UUID() 和 函数。UUID() 函数在较早的 MySQL 版本中也可以使用。