본문 바로가기
Database

[MySQL] 스키마, 테이블 사이즈 조회

by 태진아밴드 2022. 1. 28.

어제 나가서 점심먹고 여유롭게 사무실을 들어왔는데

 

갑자기 앱들이 서버에 안붙는다는 얘기를 듣고 호다닥 터미널을 켰다.

 

서버개발자를 살려주세요

로그를 확인하는데 딱히 문제가 없어보여서 다른쪽 로그를 확인해봤더니 DB 타임아웃이 떴다.

 

응..? 디비가 안붙는다고..? 나 점심먹기전까지 쿼리 쓰다 왔는데...??

 

Datagrip으로 해당 DB에 붙어서 쿼리를 날려보는데 어? 조회 잘되는데 이상하다 싶어서

 

다른테이블을 조회해보는데 조회가 안되는 상황이 발생...! 

 

특정 테이블만 조회가 안되는경우는 처음이라 이게 무슨일일까하고 AWS에 접속해서 RDS상태를 보러갔더니 용량이 다찼다..^^!

 

최근 RDS관리를 아무도 안하고있어서 몰랐는데 용량이 이렇게까지 바닥일 줄 몰라서 부랴부랴 용량 늘려서 해결은 했다.

 

뭐가 이렇게 많이 차지하고 있을까 하고 용량을 조회해보았다.

 

-- 스키마별 사이즈 조회
SELECT table_schema                                            AS 'schema',
       ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) AS 'size(MB)'
FROM information_schema.tables
GROUP BY table_schema
ORDER BY `size(MB)` DESC;

어..? 제일 메인으로 사용하는 스키마에서 236기가..?ㅋㅋㅋㅋㅋ

 

뭐가 이렇게 많이 쌓인걸까 하고 테이블별로도 조회해보았다.

 

-- 테이블별 사이즈 조회
SELECT table_name                                                AS 'table_name',
       ROUND(SUM(data_length + index_length) / (1024 * 1024), 2) AS 'total(MB)',
       ROUND(data_length / (1024 * 1024), 2)                     AS 'data(MB)',
       ROUND(index_length / (1024 * 1024), 2)                    AS 'index(MB)'
FROM information_schema.tables
GROUP BY table_name
ORDER BY `total(MB)` DESC;

 

 

찾아보니 API 호출 관련해서 로그를 쌓는 테이블이 있었는데 여기에서 어마어마하게 데이터가 쌓이는중이였다.

 

해당 테이블 데이터 건수를 조회해봤더니 3억7천개...^^

 

소스에서 찾아봤더니 모든 API 호출에 filter를 걸어서 저기 테이블에 우선적으로 insert하게끔 되어있길래

 

팀장님과 논의 후 어차피 파일로그로 따로 쌓고있으니 우선은 주석처리 하고 사용 안하는걸로 변경했다.

 

주기적으로 RDS 모니터링을 해주고 이벤트메일 오게끔 수정해야겠다..^^!

'Database' 카테고리의 다른 글

[MySQL] 테이블, 컬럼 코멘트 조회  (0) 2021.07.14
[ORA-01861] literal does not match format string  (0) 2019.10.15