반응형

안녕하세요. Johncom 입니다.

 

information Schema의 테이블에는 테이블 관련 정보들이 정의되어 기록되고 있습니다.

모든 값들은 byte 단위로 기록되고 있어 간단한 변환이 필요합니다.

아래 내용은 "MB" 기준으로 계산 되어 "GB" 계산을 진행하려면 /1024를 추가해야 합니다.

 

DESC information_schema.TABLES;

< information_shema.TABLES 구조 >

+-----------------+---------------------+------+-----+---------+-------+
| Field           | Type                | Null | Key | Default | Extra |
+-----------------+---------------------+------+-----+---------+-------+
| TABLE_CATALOG   | varchar(512)        | NO   |     |         |       |
| TABLE_SCHEMA    | varchar(64)         | NO   |     |         |       |
| TABLE_NAME      | varchar(64)         | NO   |     |         |       |
| TABLE_TYPE      | varchar(64)         | NO   |     |         |       |
| ENGINE          | varchar(64)         | YES  |     | NULL    |       |
| VERSION         | bigint(21) unsigned | YES  |     | NULL    |       |
| ROW_FORMAT      | varchar(10)         | YES  |     | NULL    |       |
| TABLE_ROWS      | bigint(21) unsigned | YES  |     | NULL    |       |
| AVG_ROW_LENGTH  | bigint(21) unsigned | YES  |     | NULL    |       |
| DATA_LENGTH     | bigint(21) unsigned | YES  |     | NULL    |       |
| MAX_DATA_LENGTH | bigint(21) unsigned | YES  |     | NULL    |       |
| INDEX_LENGTH    | bigint(21) unsigned | YES  |     | NULL    |       |
| DATA_FREE       | bigint(21) unsigned | YES  |     | NULL    |       |
| AUTO_INCREMENT  | bigint(21) unsigned | YES  |     | NULL    |       |
| CREATE_TIME     | datetime            | YES  |     | NULL    |       |
| UPDATE_TIME     | datetime            | YES  |     | NULL    |       |
| CHECK_TIME      | datetime            | YES  |     | NULL    |       |
| TABLE_COLLATION | varchar(32)         | YES  |     | NULL    |       |
| CHECKSUM        | bigint(21) unsigned | YES  |     | NULL    |       |
| CREATE_OPTIONS  | varchar(255)        | YES  |     | NULL    |       |
| TABLE_COMMENT   | varchar(2048)       | NO   |     |         |       |
+-----------------+---------------------+------+-----+---------+-------+

 

TABLE 정보

TABLE_CATALOG 테이블이 속한 카탈로그 (대부분은 고정된 값일 수 있음)
TABLE_SCHEMA 테이블이 속한 스키마 (데이터베이스 이름)
TABLE_NAME 테이블 이름
TABLE_TYPE 테이블의 유형 (예
ENGINE 테이블이 사용하는 스토리지 엔진 (예
VERSION 테이블의 버전 (내부적인 관리 버전 정보)
ROW_FORMAT 테이블의 행 저장 형식 (예
TABLE_ROWS 테이블에 저장된 행의 개수
AVG_ROW_LENGTH 평균 행 길이 (바이트 단위)
DATA_LENGTH 테이블의 실제 데이터 크기 (바이트 단위)
MAX_DATA_LENGTH 테이블이 수용할 수 있는 최대 데이터 크기
INDEX_LENGTH 인덱스에 사용된 공간 크기
DATA_FREE 테이블에서 사용하지 않는 (비어 있는) 공간 크기
AUTO_INCREMENT 자동 증가(AUTO_INCREMENT) 값
CREATE_TIME 테이블이 생성된 시간
UPDATE_TIME 테이블이 마지막으로 업데이트된 시간
CHECK_TIME 테이블이 마지막으로 검사된 시간
TABLE_COLLATION 테이블에서 사용하는 정렬 규칙 (콜레이션)
CHECKSUM 테이블의 체크섬 값 (데이터의 무결성 검사용)
CREATE_OPTIONS 테이블 생성 시 사용된 추가 옵션
TABLE_COMMENT 테이블에 대한 설명 또는 주석
TABLE_SCHEMAL DB명
TABLE_NAME TABLE명

 

Query

1. 간단한 DB 사이즈 TOTAL SIZE 조회 ( 데이터 + 인덱스 )

SELECT table_schema "DATABASE",
ROUND(SUM(data_length+index_length)/1024/1024,1) "DATA(MB)"
FROM information_schema.TABLES
GROUP BY table_schema;

 

 

2. DB 사이즈 중 DATA와 INDEX 나눠서 보기

SELECT
table_schema "DATABASE",
ROUND(SUM(data_length)/(1024/1024),2) as 'DATA(MB)',
ROUND(SUM(index_length)/(1024/1024),2) as 'INDEX(MB)'
FROM information_schema.TABLES
GROUP BY table_schema
ORDER BY 2 DESC;

 

3.특정 DB내 테이블 정보 가져오기

SELECT
table_schema "DATABASE",
table_name "TABLE",
table_rows "TABLE_COUNT",
ROUND(data_length/(1024/1024),2) as 'DATA(MB)',
ROUND(index_length/(1024/1024),2) as 'INDEX(MB)'
FROM information_schema.TABLES
WHERE table_schema = 'test'
ORDER BY 3 DESC;

 

4.DB-TABLE 별 COUNT와 DATABASE SIZE 확인하기

SELECT
table_schema "DATABASE",
table_name "TABLE",
table_rows "TABLE_COUNT",
ROUND(data_length/(1024/1024),2) as 'DATA(MB)',
ROUND(index_length/(1024/1024),2) as 'INDEX(MB)'
FROM information_schema.TABLES;

 

자주 내가 날리는 쿼리

SELECT
table_schema "DATABASE",
table_name "TABLE",
table_rows "TABLE_COUNT",
ROUND(data_length/(1024/1024),2) as 'DATA(MB)',
ROUND(index_length/(1024/1024),2) as 'INDEX(MB)'
FROM information_schema.TABLES
WHERE table_schema NOT IN ('sys','mysql','information_schema','performance_schema')
ORDER BY data_length DESC;
반응형