跳到主要内容
版本:Latest-4.1

uuid_v7_numeric

返回一个 LARGEINT 类型的时间有序 UUID v7。UUID v7 定义于 RFC 9562。与随机生成的 UUID v4 相比,UUID v7 具有时间有序特性,因此在数据库中能够提供更好的性能表现,例如提升索引局部性并减少数据碎片。

该函数将 UUID v7 以 128 位整数(LARGEINT) 形式返回,而不是字符串格式,这在存储和比较操作中通常更加高效。

该函数为非确定性函数,每次调用都会生成不同的 UUID。

语法

uuid_v7_numeric()

返回值

返回一个 LARGEINT 类型(128 位整数) 的值。

示例

mysql> SELECT uuid_v7_numeric();
+--------------------------------------+
| uuid_v7_numeric() |
+--------------------------------------+
| 2088748395792837468371928374619283746 |
+--------------------------------------+
1 row in set (0.01 sec)

优势

  1. 时间有序:后生成的 UUID 值大于先生成的值。
  2. 更优的索引性能:在 B-tree 索引中具有更好的局部性。
  3. 减少碎片:顺序插入可减少页分裂。
  4. 全局唯一:随机位确保即使在同一毫秒内生成的 UUID 也不会重复。
  5. 存储更高效:数值表示方式相比字符串格式通常更紧凑。

与 uuid_numeric 的对比

特性uuid_numeric() (v4)uuid_v7_numeric() (v7)
顺序性随机按时间有序
索引性能较差较好
碎片情况
是否包含时间信息是(48 位毫秒时间戳)
Rocky the happy otterStarRocks Assistant

AI generated answers are based on docs and other sources. Please test answers in non-production environments.