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 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