Инструменты пользователя

Инструменты сайта


Боковая панель

Связь

razmer_bazy_dannyx_postgresql

Размер базы данных PostgreSQL

Как посмотреть размер баз и таблиц?

  • Физический размер БД, при помощи команды du.
    # du -hsx /var/lib/pgsql
    178G	/var/lib/pgsql
Эта информация будет правильной если Вы уверены, что внутри директории /var/lib/pgsql находятся все файлы и табличные пространства, проще определить размер БД при помощи SQL.
  • Просмотр размера базы по имени БД или ее OID.
    SELECT pg_database_size('имя базы');
    SELECT pg_database_size('oid');
    # psql -U postgres -A -c "select pg_database_size('имя базы')"
    SELECT pg_database_size(current_database());
  • Вывести размер текущей базы данных в байтах и гигабайтах. Результат будет выведен в байтах, для конвертирования в удобочитаемый формат можно использовать функцию pg_size_pretty().
    mbillcz5054=# SELECT pg_database_size(current_database()) AS size_Bytes,
    pg_database_size(current_database())/1024.0/1024/1024 AS size_GBytes,
    pg_size_pretty(pg_database_size(current_database())) AS size_pretty;
      size_bytes  |     size_gbytes      | size_pretty 
    --------------+----------------------+-------------
     189442111248 | 176.4317147880792617 | 176 GB
  • Вывести суммарный размер всех баз данных.
    SELECT sum(pg_database_size(datname)) FROM pg_database;
  • Каков размер таблицы(только данные)? pg_relation_size
    SELECT pg_relation_size('имя таблицы');
    
    # psql -U postgres имя базы -c "SELECT pg_relation_size('имя таблицы')"
    
    SELECT pg_relation_size('prices') AS size_Bytes,
    pg_relation_size('prices')/1024.0/1024/1024 AS size_GBytes,
    pg_size_pretty(pg_relation_size('prices')) AS size_pretty;
     size_bytes |    size_gbytes     | size_pretty 
    ------------+--------------------+-------------
     3834396672 | 3.5710601806640625 | 3657 MB
  • Каков полный размер таблицы (включая индексы и другие связанные с нею пространства)? pg_total_relation_size или \dt+
    SELECT pg_total_relation_size('имя таблицы');
    
    SELECT pg_total_relation_size('prices') AS size_Bytes,
    pg_relation_size('prices')/1024.0/1024/1024 AS size_GBytes,
    pg_size_pretty(pg_relation_size('prices')) AS size_pretty;
    
    # \dt+ prices
                         List of relations
     Schema |  Name  | Type  |  Owner   |  Size   | Description 
    --------+--------+-------+----------+---------+-------------
     public | prices | table | postgres | 3657 MB | 
  • Размер столбца
    select pg_column_size('имя стобца') from 'имя таблицы';



razmer_bazy_dannyx_postgresql.txt · Последние изменения: 2013/08/23 12:06 (внешнее изменение)