更新时间:2024-09-02 GMT+08:00

UUID类型

UUID:通用唯一识别码(Universally Unique Identifier)是用于计算机体系中以识别信息的一个128位标识符。

UUID的作用是让分布式系统中的所有元素都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。很多应用场景需要一个ID,仅用来标识一个对象。常见的例子有数据库表的ID字段。另一个例子是前端的各种UI库,因为它们通常需要动态创建各种UI元素,这些元素需要唯一的ID,这时就需要使用UUID。

GaussDB(DWS)支持的UUID函数及UUID应用示例,可参考UUID函数

UUID格式

UUID由开放软件基金会标准化,作为分布式计算环境的一部分,在互联网工程任务组(IETF)公布的RFC 4122标准中对UUID进行了标准化。标准的UUID由36个字符组成,其中包括32个16进制数字和4个连字符‘-’,形式为8-4-4-4-12,标准的UUID示例如下:

1
a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11

除了标准型的UUID,GaussDB(DWS)同样支持以其他方式输入:大写字母和数字、由花括号包围的标准格式、省略部分或所有连字符、在任意一组四位数字之后加一个连字符。示例:

1
2
3
4
A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11
{a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11}
a0eebc999c0b4ef8bb6d6bb9bd380a11
a0ee-bc99-9c0b-4ef8-bb6d-6bb9-bd38-0a11

UUID组成

UUID采用时间信息和空间信息确保全局唯一,通常由时间戳信息、时钟序列和节点ID(MAC地址)组成。而GaussDB(DWS)分布式集群中多个节点可能部署在同一个机器上,其MAC地址相同,UUID存在冲突的风险。因此GaussDB(DWS)将最后48位为的MAC地址替换为生成UUID的CN或DN的序号和当前的线程ID,确保UUID在分布式集群内部做到全局唯一。