PostgreSQL 统计字段最大长度的方法
使用 LENGTH() 函数:
SELECT MAX(LENGTH(your_column)) AS max_char_length FROM your_table;
此方法计算字符数,对多字节字符(如中文)按一个字符计算。
使用 OCTET_LENGTH() 函数(或 LENGTH(column_name, ‘bytes’) 在较新版本中):
SELECT MAX(OCTET_LENGTH(your_column)) AS max_byte_length FROM your_table;
此方法返回占用的字节数,更精确地反映存储大小。
使用 PG_COLUMN_SIZE() 函数:
SELECT MAX(PG_COLUMN_SIZE(your_column)) AS max_storage_size FROM your_table;
这会返回该列值在磁盘上的实际大小(包括TOAST指针和压缩开销),是数据库管理中最接近真实物理存储的度量。
-- 假设表 articles 有一个 varchar 类型的 title 列
SELECT
MAX(LENGTH(title)) AS max_chars,
MAX(OCTET_LENGTH(title)) AS max_bytes,
MAX(PG_COLUMN_SIZE(title)) AS max_physical_bytes
FROM
articles;