각 DB엔진 별로 데이터베이스의 테이블 별 용량을 가져오는 쿼리이다.
아래 쿼리의 결과는 KB단위로 출력되나, 필요에 따라서 수식을 수정해서 MB나 GB로 고쳐서 사용하면 된다.
PostgreSQL
SELECT
table_name,
ROUND(pg_relation_size(table_name::regclass) / (1024), 2) AS data_size_kb,
ROUND(pg_indexes_size(table_name::regclass) / (1024), 2) AS index_size_kb,
ROUND(pg_total_relation_size(table_name::regclass) / (1024), 2) AS total_size_kb
FROM
information_schema.tables
WHERE
table_schema = 'public'; -- 테이블 스키마 지정 필요. 다른 스키마를 생성해서 사용하지 않는 경우 public
MySQL / MariaDB
select TABLE_NAME,
ROUND(DATA_LENGTH/ 1024, 2) AS data_size_kb,
ROUND(INDEX_LENGTH/ 1024, 2) AS index_size_kb,
ROUND((DATA_LENGTH + INDEX_LENGTH)/ 1024, 2) AS total_size_kb
from information_schema.TABLES
where TABLE_SCHEMA = '{스키마 명}'
'Database > SQL' 카테고리의 다른 글
SQLAlchemy에서 Transaction사용하기 (0) | 2024.01.21 |
---|---|
Recursive Query(재귀 쿼리) 알아보기 (0) | 2023.07.16 |
데이터베이스에서의 Transaction (트랜잭션) (0) | 2023.04.23 |
Window Function (윈도우 함수) 사용하기 (0) | 2023.04.09 |