【发布时间】:2016-03-17 08:01:27
【问题描述】:
是否可以在 postgres 中获取特定表的每一行大小?
例如,一个表有 50 行,总表大小为 10gb,但我想知道每行大小而不是完整的表大小。
【问题讨论】:
标签: postgresql
是否可以在 postgres 中获取特定表的每一行大小?
例如,一个表有 50 行,总表大小为 10gb,但我想知道每行大小而不是完整的表大小。
【问题讨论】:
标签: postgresql
计算postgress表行的行大小的函数是这样的
SELECT sum(pg_column_size(t.*)) as filesize, count(*) as filerow FROM TABLE_NAME as t;
将TABLE_NAME 替换为您的表名;
添加条件t.COLUMN_NAME = 'YOUR_VALUE'
【讨论】:
pg_column_size(t.*) 可以简化为 pg_column_size(t)。该值将包括行标题“开销”,因此要获得实际数据大小,您需要减去 24:pg_column_size(t) - 24
没有计算行大小的函数,只有计算列值大小的函数。所以你可以这样做:
select pg_column_size(column_1) +
pg_column_size(column_2) +
pg_column_size(column_3) as row_size
from the_table;
如果您需要,可以使用动态 SQL 和 PL/pgSQL 函数自动执行此操作。
【讨论】:
where 子句