MariaDB UUID_SHORT() 函数使用指南

在 MariaDB 中,UUID_SHORT() 是一个内置函数,返回一个简短的在一定条件下具有唯一性的通用标识符(UUID)。

您还可以使用 UUID()SYS_GUID() 获取唯一标识符。

UUID_SHORT()UUID() 返回值不同并具有不同的唯一性属性。

MariaDB UUID_SHORT() 语法

这里是 MariaDB UUID_SHORT() 函数的语法:

UUID_SHORT()

参数

MariaDB UUID_SHORT() 函数没有任何参数。

返回值

MariaDB UUID_SHORT() 函数以 64 位无符号整数形式返回一个短的通用标识符。

这是 UUID_SHORT() 函数返回值的构造方式:

  (server_id & 255) << 56
+ (server_startup_time_in_seconds << 24)
+ incremented_variable++;

在满足下列条件时, UUID_SHORT() 函数返回的值是唯一的:

  • 当前服务器的 server_id 值在 0 到 255 之间,并且在您的源服务器和副本服务器集中是唯一的
  • 您不会在 mysqld 重新启动之间设置服务器主机的系统时间
  • 您在 mysqld 重新启动之间平均每秒调用 UUID_SHORT() 少于 1600 万次

MariaDB UUID_SHORT() 示例

下面的示例展示了如何使用 UUID_SHORT() 函数获取一个唯一标识符。

SELECT UUID_SHORT();

输出:

+--------------------+
| UUID_SHORT()       |
+--------------------+
| 100158760672034816 |
+--------------------+

如果我再次调用它,我会得到不同的值:

SELECT UUID_SHORT();

输出:

+--------------------+
| UUID_SHORT()       |
+--------------------+
| 100158760672034817 |
+--------------------+

即使您在同一个语句中调用两次 UUID_SHORT(), 也会达到不同的值:

SELECT
  UUID_SHORT(),
  UUID_SHORT()\G

输出:

UUID_SHORT(): 100158760672034818
UUID_SHORT(): 100158760672034819

SYS_GUID() vs UUID() vs UUID_SHORT()

下面的例子展示了 SYS_GUID()UUID()UUID_SHORT() 的不同:

SELECT
  UUID_SHORT(),
  UUID(),
  SYS_GUID()\G

输出:

UUID_SHORT(): 100158760672034821
      UUID(): 442e4aba-a10d-11ed-ac31-18c04d19fce5
  SYS_GUID(): 442e4abfa10d11edac3118c04d19fce5

结论

在 MariaDB 中,UUID_SHORT() 是一个内置函数,返回一个简短的在一定条件下具有唯一性的通用标识符(UUID)。