PostgreSQLでテーブル、インデックスの合計容量を取得する
探してたら古い情報しかなかったのでメモ。最新バージョンのドキュメントだと、結構明瞭に記述できるようになっている。
SELECT relname, pg_size_pretty(pg_total_relation_size(relid)) AS totalsize, pg_size_pretty(pg_table_size(relid)) AS tablesize, pg_size_pretty(pg_indexes_size(relid)) AS indexsize FROM pg_stat_user_tables ORDER BY relid DESC LIMIT 3; relname | totalsize | tablesize | indexsize ---------+-----------+-----------+----------- five | 8029 MB | 7814 MB | 214 MB three | 5098 MB | 4884 MB | 214 MB one | 2582 MB | 2368 MB | 214 MB (3 rows)
ORDERとかLIMITとかは必要に応じていじってちょ。参考↓