PostgreSQL テーブルとそのインデックスのディスクサイズを見つける

Shihab Sikder 2023年1月30日
  1. PSQL を使用して PostgreSQL テーブルとデータベースのディスクサイズを見つける
  2. データベースで最大のテーブルのサイズを見つける
PostgreSQL テーブルとそのインデックスのディスクサイズを見つける

この記事では、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
Shihab Sikder avatar Shihab Sikder avatar

I'm Shihab Sikder, a professional Backend Developer with experience in problem-solving and content writing. Building secure, scalable, and reliable backend architecture is my motive. I'm working with two companies as a part-time backend engineer.

LinkedIn Website

関連記事 - PostgreSQL Table