在PostgreSQL中,是否有可能获取特定表的每行大小?
例如,一个表有50行,总表大小为10GB,但我想知道每行的大小而不是完整表的大小。
在PostgreSQL中,是否有可能获取特定表的每行大小?
例如,一个表有50行,总表大小为10GB,但我想知道每行的大小而不是完整表的大小。
计算Postgres表行大小的函数大致如下:
SELECT sum(pg_column_size(t.*)) as filesize, count(*) as filerow FROM TABLE_NAME as t;
将 TABLE_NAME
替换为您的表名;
要添加条件,请使用 t.COLUMN_NAME = 'YOUR_VALUE'
没有计算行大小的函数,只有计算列值大小的函数。因此您可以执行以下操作:
select pg_column_size(column_1) +
pg_column_size(column_2) +
pg_column_size(column_3) as row_size
from the_table;
where
子句。 - user330315select pg_column_size(table_name.*) as rowsize_in_bytes from table_name where id = '698119855102848';
pg_column_size(t.*)
可以简化为pg_column_size(t)
。该值将包括行头的“开销”,因此要获取实际数据大小,您需要减去 24:pg_column_size(t) - 24
。 - user330315