Loading...
MySQL 9.5 Reference Manual 9.5의 16.6 Serialized Dictionary Information (SDI)의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
데이터 딕셔너리에 데이터베이스 객체에 대한 메타데이터를 저장하는 것 외에, MySQL은 그것을 직렬화된 형태로도 저장합니다. 이 데이터는 serialized dictionary information(SDI)라고 부릅니다. InnoDB는 SDI 데이터를 테이블스페이스 파일 안에 저장합니다. NDBCLUSTER는 SDI 데이터를 NDB 딕셔너리에 저장합니다. 다른 스토리지 엔진들은 SDI 데이터를 테이블의 데이터베이스 디렉터리에 생성되는 .sdi 파일에 저장합니다. SDI 데이터는 컴팩트한 JSON 포맷으로 생성됩니다.
Serialized dictionary information(SDI)은 일시적인 테이블스페이스 파일과 undo 테이블스페이스 파일을 제외한 모든 InnoDB 테이블스페이스 파일에 존재합니다. InnoDB 테이블스페이스 파일의 SDI 레코드는 해당 테이블스페이스에 포함된 테이블 및 테이블스페이스 객체만을 기술합니다.
SDI 데이터는 테이블에 대한 DDL 작업 또는 CHECK TABLE FOR UPGRADE에 의해 업데이트됩니다. MySQL 서버가 새로운 릴리스나 버전으로 업그레이드될 때는 SDI 데이터가 업데이트되지 않습니다.
SDI 데이터가 존재하면 메타데이터 중복성이 제공됩니다. 예를 들어, 데이터 딕셔너리를 사용할 수 없게 된 경우에도, 객체 메타데이터를 ibd2sdi 도구를 사용하여 InnoDB 테이블스페이스 파일로부터 직접 추출할 수 있습니다.
InnoDB의 경우, 하나의 SDI 레코드는 기본적으로 크기가 16KB인 단일 인덱스 페이지를 필요로 합니다. 그러나 SDI 데이터는 스토리지 공간을 줄이기 위해 압축됩니다.
여러 테이블스페이스로 구성된 파티션드 InnoDB 테이블의 경우, SDI 데이터는 첫 번째 파티션의 테이블스페이스 파일에 저장됩니다.
MySQL 서버는 DDL 작업 중에 접근되는 내부 API를 사용하여 SDI 레코드를 생성하고 유지 관리합니다.
IMPORT TABLE 문은 .sdi 파일에 포함된 정보를 기반으로 MyISAM 테이블을 가져옵니다. 자세한 내용은 Section 15.2.6, “IMPORT TABLE Statement”를 참조하십시오.
16.5 INFORMATION_SCHEMA and Data Dictionary Integration
16.7 Data Dictionary Usage Differences