PostgreSQL:如何像pg_typeof那样交互式查询值的字节大小?
PostgreSQL 获取值字节大小的方法
是的,PostgreSQL 提供了 pg_sizeof() 函数,完全满足你通过交互式查询获取值字节大小的需求,用法和 pg_typeof() 类似。
基础用法示例
-- 获取数值1.4的字节大小 SELECT pg_sizeof(1.4); -- 输出示例:16(实际值可能因PostgreSQL版本或配置略有差异) -- 对比不同类型值的大小 SELECT pg_typeof(1) AS type_int, pg_sizeof(1) AS size_int, pg_typeof(1.4) AS type_numeric, pg_sizeof(1.4) AS size_numeric, pg_typeof('hello') AS type_text, pg_sizeof('hello') AS size_text;
补充说明
- 对于可变长度类型(比如
numeric、text、bytea),pg_sizeof()返回的是当前具体值的实际存储字节数,而非类型的固定大小。例如更长的文本会返回更大的数值:SELECT pg_sizeof('short text'), pg_sizeof('this is a much longer text string'); - 如果需要查询数据类型的固定/默认存储规格(比如整数的固定4字节),可以直接查询系统表
pg_type:SELECT typname, typlen FROM pg_type WHERE typname IN ('integer', 'numeric', 'text'); -- typlen字段说明:-1表示可变长度类型,正数为固定字节数
内容的提问来源于stack exchange,提问作者David542
相关产品推荐
相关产品推荐

