1. 데이터 딕셔너리 (=메타데이터) 란?

데이터베이스 서버에서 테이블 구조 정보, 스토어드 프로그램 등의 정보. (그야말로 메타데이터!)

 

2. MySQL의 데이터 딕셔너리 관리

MySQL 8.0 버전부터는 메타 데이터를 InnoDB의 테이블에 저장한다.

시스템 테이블과 데이터 딕셔너리 정보를 모두 모아서 mysql DB에 저장한다.

 

mysql DB는 사용자 접근을 막아놨기 때문에 다음과 같이 조회를 해볼 수는 없다.

mysql> SELECT * FROM mysql.tables;
ERROR 3554 (HY000) : Access to data dictionary table 'mysql.tables' is rejected.

대신 MySQL 서버는 데이터 딕셔너리 정보를 information_schema DB의 TABLES와 COLUMNS 등과 같은 뷰를 통해 조회할 수 있게 하고있다.

-- information_schema DB의 tables 테이블에 대한
-- create table 구문 출력
SHOW CREATE information_schema.tables;

그러면 대충 아래와 비슷한 결과를 볼 수 있다.

CREATE VIEW 'TABLES'AS
	select 어쩌구 from 'mysql'.'tables' 'tbl' join 'mysql'.'schemata' 'sch'

 

+ Recent posts