PostgreSQL枚举类型的大小是多少?

jau*_*evn 5 sql postgresql enums

我想知道PostgreSQL的枚举变量的大小是多少。例如,如果我创建一个包含100个不同项的枚举类型A,则其字节大小将是多少?另外,当我创建一个包含类型为A的属性的表时,此属性的大小是多少?

我检查了PostgreSQL文档,但不了解最后一部分有关枚举类型大小的内容。

ckr*_*use 7

枚举的大小在磁盘上为4字节。期。这是因为枚举被实现为整数或短裤。每个整数值的标签保存在系统目录中pg_enum。您可以通过简单地查询它来查看它:

test=# select * from pg_enum;
 enumtypid | enumsortorder | enumlabel 
-----------+---------------+-----------
(0 rows)

test=# create type test_enum_t as enum('a','b','c');
CREATE TYPE
test=# select * from pg_enum;
 enumtypid | enumsortorder | enumlabel 
-----------+---------------+-----------
     68850 |             1 | a
     68850 |             2 | b
     68850 |             3 | c
(3 rows)

test=# 
Run Code Online (Sandbox Code Playgroud)