카테고리 없음
MySQL 테이블 용량 확인 및 안전한 데이터 정리 방법
OJR
2025. 6. 23. 14:50
MySQL에서 디스크 용량 부족이 우려될 때,
어떤 테이블이 공간을 많이 차지하는지 확인하고
안전하게 데이터를 정리하는 방법
테이블별 용량 확인
SELECT
table_schema AS `Database`,
table_name AS `Table`,
ROUND((data_length + index_length) / 1024 / 1024, 2) AS `Size_MB`
FROM
information_schema.TABLES
WHERE
table_schema NOT IN ('mysql', 'performance_schema', 'information_schema', 'sys')
ORDER BY
Size_MB DESC
LIMIT 50;
→ Size_MB가 큰 순서대로 테이블 용량을 확인할 수 있다.
데이터 정리 방법
용량이 큰 테이블이 확인되면, 다음 중 한 가지 방법으로 데이터를 정리할 수 있다.
1. 전체 데이터 초기화 (주의!)
TRUNCATE TABLE products;
- 모든 데이터를 빠르게 삭제
- AUTO_INCREMENT도 초기화됨
- 외래키 제약이 있을 경우 실패할 수 있음
2. 조건을 붙여 일부씩 삭제 (추천)
DELETE FROM products
WHERE rdate < '2022-01-01'
LIMIT 1000;
- 한 번에 너무 많은 데이터를 삭제하면 락이 걸릴 수 있으므로, LIMIT을 걸어 나눠서 삭제하는 것이 안전
정리
- 먼저 용량을 확인하고
- TRUNCATE 또는 조건 + LIMIT 삭제 방식으로 신중하게 정리
- 대량 삭제 시 락을 방지하려면 반드시 작게 나눠서 진행!