数据仓库服务 GAUSSDB(DWS)-UUID函数:UUID函数应用示例
UUID函数应用示例
UUID全局唯一的特点,可以作为数据表生成主键,也可以作为数据表的分布列,uuid_generate_v1()作为数据表分布列的默认值时,通过Hash分布可以将数据均匀分布到各个DN上,防止数据倾斜。
UUID的显著优点就是全局唯一,不需要中心节点,单个节点独立生成。但是也存在缺点,UUID较INT占用更多的存储空间,索引效率低,生成的ID随机,没有递增的特性,所以辨识困难。因此,在应用中,要根据实际情况选择UUID还是Sequence作为数据表主键。
示例如下:
- INT类型作为分布列。
创建示例哈希表mytable01,int类型作为分布列,插入数据后,查询数据存在数据倾斜。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
CREATE TABLE mytable01(a INT, b INT) DISTRIBUTE BY hash(a); CREATE TABLE INSERT INTO mytable01 VALUES(1, 10); INSERT 0 1 INSERT INTO mytable01 VALUES(1, 10); INSERT 0 1 INSERT INTO mytable01 VALUES(1, 10); INSERT 0 1 INSERT INTO mytable01 VALUES(1, 10); INSERT 0 1 INSERT INTO mytable01 VALUES(1, 10); INSERT 0 1 SELECT * FROM mytable01; a | b ---+---- 1 | 10 1 | 10 1 | 10 1 | 10 1 | 10 (5 rows) SELECT table_skewness('mytable01'); table_skewness ------------------------------------- ("dn_6003_6004 ",5,100.000%) ("dn_6001_6002 ",0,0.000%) ("dn_6005_6006 ",0,0.000%) (3 rows)
- UUID类型作为分布列。
创建示例哈希表mytable02,UUID类型作为分布列,插入数据后,查询数据分布正常。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
CREATE TABLE mytable02 (id UUID default uuid_generate_v1(), a INT, b INT) DISTRIBUTE BY hash(id); CREATE TABLE INSERT INTO mytable02(a, b) VALUES(1, 10); INSERT 0 1 INSERT INTO mytable02(a, b) VALUES(1, 10); INSERT 0 1 INSERT INTO mytable02(a, b) VALUES(1, 10); INSERT 0 1 INSERT INTO mytable02(a, b) VALUES(1, 10); INSERT 0 1 INSERT INTO mytable02(a, b) VALUES(1, 10); INSERT 0 1 SELECT * FROM mytable02; id | a | b --------------------------------------+---+---- 63e45c14-cc74-0e00-e9aa-0a2c3fa0fffe | 1 | 10 63e45c1f-4d18-0700-e9ab-0a2c3fa0fffe | 1 | 10 63e45c26-f859-0b00-e9ad-0a2c3fa0fffe | 1 | 10 63e45c23-9e5d-0300-e9ac-0a2c3fa0fffe | 1 | 10 63e45c2a-5825-0600-e9ae-0a2c3fa0fffe | 1 | 10 (5 rows) SELECT table_skewness('mytable02'); table_skewness ------------------------------------ ("dn_6001_6002 ",3,60.000%) ("dn_6003_6004 ",2,40.000%) ("dn_6005_6006 ",0,0.000%) (3 rows)
- GaussDB函数_GaussDB数据库函数_高斯数据库函数_华为云
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- GaussDB数据库函数_GaussDB介绍_高斯数据库函数
- GaussDB支持的函数_GaussDB函数类型解析_高斯数据库支持的函数-华为云
- GaussDB数据库函数_GaussDB函数和操作符_高斯数据库函数-华为云
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- 华为GaussDB自定义函数_GaussDB教程_华为高斯数据库自定义函数
- 华为数据库日期函数_GaussDB安装_高斯数据库日期函数
- GaussDB数据库自定义函数_GaussDB 华为_高斯数据库自定义函数