카테고리 없음

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 삭제 방식으로 신중하게 정리
  • 대량 삭제 시 락을 방지하려면 반드시 작게 나눠서 진행!