Узнать размер баз и таблиц в PostgreSQL

При просмотре занятого в системе пространства, довольно большой объем может быть занят /var/lib/postgresql/, просто при изучением файлов невозможно будет понять, что именно занимает место,а тем более непонятна причина такого объема.

Определить размер баз PostgreSQL

1) Заходим под пользователем PostgreSQL

su postgres

2) запускаем psql

psql

3) выполняем команду

\l+

Получаем полный список всех баз с их размерами.

Определяем размер таблиц PostgreSQL

1) Заходим в psql, по аналогии предыдущим разделом

2) подключаемся к базе

\c dbname

и выполняем запрос


SELECT nspname || '.' || relname AS "relation",
    pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
  FROM pg_class C
  LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
  WHERE nspname NOT IN ('pg_catalog', 'information_schema')
    AND C.relkind <> 'i'
    AND nspname !~ '^pg_toast'
  ORDER BY pg_total_relation_size(C.oid) DESC
  LIMIT 20;

В выводе мы получим топ 20 таблиц, отсортированные по размеру.

Пример вывода:

В данном случае видно что таблица public.pgbench_accounts занимает порядка 15 гигабайт, после тестирования нагрузки таблицу не очистили, соответственно потеряли пространство.
просто чистим:

truncate public.pgbench_accounts;
(Visited 3 times, 1 visits today)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *