카테고리 없음

[MySQL] DB/Table/Column 용량 확인

초이화영 2024. 2. 27. 13:38

DB 용량 확인

SELECT table_schema AS 'DATABASE', ROUND(SUM(data_length+index_length)/(1024*1024), 2) AS 'Size(MB)'
FROM information_schema.tables
WHERE TABLE_SCHEMA not in ('sys', 'mysql', 'information_schema','performance_shcema')
GROUP BY table_schema
ORDER BY 2 DESC;

 

Table 별 용량 확인

SELECT table_name as 'TableName', ROUND(SUM(data_length+index_length)/(1024*1024), 2) AS 'All(MB)',
ROUND(SUM(data_length)/(1024*1024), 2) AS 'DATA(MB)', ROUND(SUM(index_length)/(1024*1024), 2) AS 'Index(MB)'
FROM information_schema.tables
WHERE TABLE_SCHEMA not in ('sys', 'mysql', 'information_schema','performance_shcema')
GROUP BY table_name
ORDER BY 2 DESC;

 

Column 별 용량 확인

SELECT ROUND(sum(LENGTH(컬럼명))/1024/1024, 2) AS 'total_size(MB)'
FROM 테이블명;

 

** 참고 **
select char_length(컬럼명) from 테이블명; => 글자수

select length(컬럼명) from 테이블명; => byte수



information_schema.TABLES 필드 정리

Field Type 설명
TABLE_CATALOG VARCHAR(64) 스키마가 속한 카탈로그 이름
TABLE_SCHEMA VARCHAR(64) DB 스키마 이름
TABLE_NAME VARCHAR Table 이름
TABLE_TYPE ENUM('BASE TABLE', 'VIEW', 'SYSTEM VIEW') BASE TABLE: 표준테이블
VIEW: 뷰 테이블
SYSTEM VIEW: 시스템 관련 뷰
ENGINE VARCHAR(64) 테이블 스토리 엔진
VERSION INT 테이블 .frm 파일 버전
ROW_FORMAT enum('Fixed','Dynamic','Compressed','Redundant','Compact','Paged') 행 저장 형식
InnoDB 기본은 Dynamic(동적)
TABLE_ROWS BIGINT UNSIGNED 행 수
AVG_ROW_LENGTH BIGINT UNSIGNED 평균 행 길이
DATA_LENGTH BIGINT UNSIGNED 데이터 파일 크기(바이트)
MAX_DATA_LENGTH BIGINT UNSIGNED 데이터 파일의 최대 길이
INDEX_LENGTH BIGINT UNSIGNED 인덱스 파일 크기
DATA_FREE BIGINT UNSIGNED 할당되었지만 사용되지 않은 바이트 수
AUTO_INCREMENT BIGINT UNSIGNED 다음 AUTO_INCREMENT 값
CREATE_TIME TIMESTAMP 생성 날짜
UPDATE_TIME DATETIME 마지막 업데이트된 날짜
CHECK_TIME DATETIME 마지막으로 확인된 시간
분할된 InnoDB 테이블 경우 항상 NULL
TABLE_COLLATION VARCHAR(64) 테이블 데이터 관련 문자 인코딩 정보
CHECKSUM BIGINT 라이브 체크썸으로 데이터의 무결성을 보호하는 방법
CREATE_OPTIONS VARCHAR(64) CREATE TABLE과 함께 사용되는 추가 옵션
TABLE_COMMENT TEXT 테이블 생성시 사용된 코멘트

 


참고

 

[mysql] DB Table 데이터 크기 확인하기 및 TABLES 필드 설명

Mysql에서 table에 쌓인 데이터 크기를 알고 싶은 경우 information_schema를 이용하면 알 수 있다 SELECT table_name, -- 테이블 명 table_rows, -- 전체 row 수 data_length, -- 저장된 데이터 크기 (Bytes) round(data_length/ta

gogo-jjm.tistory.com

 

[MySQL] DB 용량 확인, 테이블별 용량 확인

ㅁ 들어가면서 MySQL의 용량을 분석하기 위한 쿼리를 정리하였습니다. update... 댓글의 질문 때문에 확인한 결과, 테이블이 뷰인 경유 용량과 건수는 null로 나타난다. ㅁ 데이터베이스 용량 확인 SEL

peterica.tistory.com