Подтвердить что ты не робот

Как оценить размер одного столбца в таблице Postgres?

В таблице в Postgres 9.1 есть столбец типа text. Я хотел бы знать, как именно этот столбец нужен на диске. Это не обязательно быть точным, но я хотел бы получить представление, если эта колонка отвечает за 20%/30%/... от дискового пространства, потребляемого базой данных.

Я знаю pg_relation_size, но он работает только на уровне таблицы.

У меня много баз данных с этой же схемой. Я сбросил меньший и вырезал столбец с помощью grep и вырезал и сравнил размер обычных текстовых дампов. Но это не обязательно хороший показатель требований к пространству в live db, и это также труднее сделать для больших баз данных.

4b9b3361

Ответ 1

select
    sum(pg_column_size(the_text_column)) as total_size,
    avg(pg_column_size(the_text_column)) as average_size,
    sum(pg_column_size(the_text_column)) * 100.0 / pg_relation_size('t') as percentage
from t;