14.9.3 DYNAMIC 및 COMPRESSED row format
이 섹션에서는 InnoDB 테이블의 DYNAMIC
및 COMPRESSED
행 형식에 대해 설명합니다. 이러한 종류의 테이블은 innodb_file_format
구성 옵션이 Barracuda
로 설정되어있는 경우에만 만들 수 있습니다. (Barracuda 파일 형식은 COMPACT
및 REDUNDANT
행 형식도 허용됩니다.)
테이블이 ROW_FORMAT=DYNAMIC
또는 ROW_FORMAT=COMPRESSED
로 작성된 경우 긴 열 값을 완전히 해제 페이지에 포함 된 클러스터 된 인덱스 레코드는 오버 플로우 페이지에 20 바이트 포인터 만 포함됩니다.
열이 해제 페이지에 포함되는지 여부는 페이지 크기 및 행의 전체 크기에 따라 다릅니다. 그 줄이 너무 긴 경우 클러스터 된 인덱스 레코드 B 트리 페이지에 들어갈 때까지 InnoDB는 오프 페이지 스토리지의 가장 긴 컬럼을 선택합니다. 40 바이트 이하의 TEXT
와 BLOB
컬럼은 항상 인라인에 저장됩니다.
DYNAMIC
행 형식은 ( COMPACT
및 REDUNDANT
포맷과 마찬가지로) 들어가는 경우는 전체 행을 인덱스 노드에 저장하는 효율성을 유지하고 있지만,이 새로운 형식은 긴 칼럼의 많은 데이터 바이트에서 B 트리 노드 이 가득 차면 문제가 해결됩니다. DYNAMIC
형식은 긴 데이터 값의 일부가 떨어져 페이지에 포함되는 경우는 일반적으로 모든 값을 취소 페이지에 저장하는 것이 가장 효율적이라는 생각에 근거하고 있습니다. DYNAMIC
형식은 짧은 컬럼은 B 트리 노드에 남아있을 수 있기 때문에 특정 행에 필요한 오버플로 페이지 수를 최소화합니다.
COMPRESSED
행 형식은 오프 페이지 저장에 관해서 DYNAMIC
행 형식과 같은 내부 정보를 사용하는 것 외에 추가 스토리지 압축 된 테이블 및 인덱스 데이터에서 성능 고려 사항 및 작은 페이지 크기를 사용합니다. COMPRESSED
행 형식은 옵션 KEY_BLOCK_SIZE
하여 클러스터 된 인덱스에 포함 된 컬럼 데이터의 양 및 오버 플로우 페이지에 배치되는 양이 제어됩니다. COMPRESSED
행 형식의 자세한 내용은 섹션 14.7 "InnoDB 압축 테이블" 을 참조하십시오.