본문 바로가기

DBMS

[MySQL] dictionary 쿼리

이 포스팅에서는 직접 사용했던 부분에 대해서만 간략히 기재하려고 한다.

MySQL documentation에서 INFORMATION_SCHEMA의 테이블에 대한 상세한 내용을 확인할 수 있다.

https://dev.mysql.com/doc/refman/8.0/en/information-schema-table-reference.html

 

MySQL :: MySQL 8.0 Reference Manual :: 26.2 INFORMATION_SCHEMA Table Reference

 

dev.mysql.com

 

 

테이블 정보 : INFORMATION_SCHEMA.TABLES

TABLE_SCHEMA 테이블이 속한 스키마(데이터베이스)
TABLE_NAME 테이블 이름
TABLE_TYPE BASE TABLE, VIEW, SYSTEM VIEW 등 테이블 유형
TABLE_ROWS 행 수
(InnoDB같은 경우 이 값은 근사치이며 실제 값과 차이가 날 수 있음)
DATA_LENGTH 데이터의 길이(바이트)
INDEX_LENGTH 인덱스의 길이(바이트)
TABLE_COMMENT 테이블 설명

 

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE();

- 현재 접속한 데이터베이스의 정보만을 조회하도록 조건을 추가

SELECT ROUND(SUM(DATA_LENGTH+INDEX_LENGTH)/1024/1024,2) "MB"
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE();

- 데이터베이스의 용량 확인 (1024로 두 번 나누어 MB단위로 환산)

 

 

컬럼 정보 : INFORMATION_SCHEMA.COLUMNS

TABLE_SCHEMA 테이블이 속한 스키마(데이터베이스)
TABLE_NAME 테이블 이름
COLUMN_NAME 열의 이름
ORDINAL_POSITION 열의 위치
IS_NULLABLE NULL 허용여부
DATA_TYPE 열의 데이터 유형 (유형 이름 뿐 그 외 정보 없음)
CHARACTER_MAXIMUM_LENGTH 문자열의 경우 최대 문자 길이
COLUMN_TYPE 열의 데이터 유형 (유형 이름, 길이 등 기타 정보 포함)
COLUMN_KEY PRI - PRIMARY KEY 또는 여러 PRIMARY KEY 중 하나
UNI - UNIQUE 인덱스의 첫번째 열
MUL - NON UNIQUE 인덱스의 첫번째 열
COLUMN_COMMENT 열 설명

 

 

인덱스 정보 : INFORMATION_SCHEMA.STATISTICS

TABLE_SCHEMA 인덱스가 포함된 테이블이 속한 스키마(데이터베이스)
TABLE_NAME 인덱스가 포함된 테이블 이름
NON_UNIQUE 인덱스에 중복 항목이 포함될 수 없으면 0, 가능하면 1
INDEX_NAME 인덱스 이름
SEQ_IN_INDEX 인덱스의 스퀀스 번호 (1부터 시작)
COLUMN_NAME 열 이름
COLLATION 정렬 방식
오름차순이면 A, 내림차순이면 D, 정렬되지 않으면 NULL