PostgreSQL テーブルとそのインデックスのディスクサイズを見つける
Shihab Sikder
2023年1月30日
この記事では、PostgreSQL テーブルとそのインデックスのディスクサイズを見つける方法について説明します。
PSQL を使用して PostgreSQL テーブルとデータベースのディスクサイズを見つける
\l+
を使用してデータベースのサイズを表示し、\d+
を使用してテーブルのサイズを表示できます。ただし、その前に、データベースにログインしてクエリを実行する必要があります。
Postgres でテーブルとデータベースのサイズを表示するための次のコマンドと出力を次に示します。
postgres=# \l+
出力:
postgres-# \d+
List of relations
Schema | Name | Type | Owner | Persistence | Access method | Size | Description
--------+------------------+----------+----------+-------------+---------------+------------+-------------
public | book_lends | table | postgres | permanent | heap | 16 kB |
public | books | table | postgres | permanent | heap | 16 kB |
public | employee | table | postgres | permanent | heap | 16 kB |
public | employee_id_seq | sequence | postgres | permanent | | 8192 bytes |
public | events | table | postgres | permanent | heap | 16 kB |
public | mock_data | table | postgres | permanent | heap | 48 kB |
public | product | table | postgres | permanent | heap | 16 kB |
public | product_id_seq | sequence | postgres | permanent | | 8192 bytes |
public | products | table | postgres | permanent | heap | 16 kB |
public | products_id_seq | sequence | postgres | permanent | | 8192 bytes |
public | prroducts | table | postgres | permanent | heap | 8192 bytes |
public | prroducts_id_seq | sequence | postgres | permanent | | 8192 bytes |
public | stores | table | postgres | permanent | heap | 16 kB |
public | stores_id_seq | sequence | postgres | permanent | | 8192 bytes |
public | users | table | postgres | permanent | heap | 16 kB |
(15 rows)
ここには、Postgres データベースにある名前、タイプ、所有者、サイズ、アクセス方法などのすべてのテーブルが表示されます。
データベースで最大のテーブルのサイズを見つける
これは、Postgres の公式がテーブルサイズを降順で表示するために作成したコードスニペットです。
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 10;
出力:
relation | total_size
-------------------+------------
public.mock_data | 48 kB
public.product | 32 kB
public.products | 32 kB
public.books | 32 kB
public.book_lends | 32 kB
public.employee | 32 kB
public.stores | 32 kB
public.users | 32 kB
public.events | 16 kB
public.prroducts | 16 kB
(10 rows)
データベースの postgres
の下で最大の 10 個のテーブルを検索しました。
次のリンクをクリックすると、Postgres のディスクサイズに関するその他のクエリを知ることができます。最大のクラスター、最大のリレーション、パーティション化されたテーブルなどを見つけるための SQL クエリがあります。
こちらでは、データベースのサイズに関する機能について詳しく説明します。
著者: Shihab Sikder