MySQL innodb 테이블 구조

MySQL이 테이블을 열고 닫기 이전에 MySQL의 파일 구조에 대해 먼저 알아보겠습니다. MySQL에서 **File**-**Per**-**Table 라는 시스템 변수가 존재하며 해당 값이 1로 설정되었을 경우 테이블 마다 .ibd 파일이 생성됩니다.**

Untitled

다만 5.7과 8.0에서 innodb의 파일 구조는 조금 상이합니다. 5.7에서는 하나의 테이블 생성시 .frm 파일과 .ibd 파일이 생성되는데요. 각 파일에 저장된 내용은 다음과 같습니다.

Untitled

8.0에서는 파일 기반 메타데이터 스토리지 문제로 인한 값비싼 파일 스캔, 파일 시스템 관련 취약성, 복제 및 충동 복구 오류 등 다양한 문제로 인해 테이블의 구조를 .frm 파일이 아닌 mysql.ibd 이라는 Data dictionary 테이블에 저장되어 관리됩니다.

Untitled

아래는 8.0에서 삭제된 메타데이터 파일입니다.

Untitled

MySQL 테이블 관련 시스템 변수

MySQL에는 테이블 파일을 열 때 사용되는 다양한 변수들이 존재합니다