15.5 ARCHIVE 스토리지 엔진
ARCHIVE
스토리지 엔진은 매우 작은 풋 프린트에 대량의 인덱싱되지 않은 데이터를 저장하는 특수 목적의 테이블을 만듭니다.
표 15.5 ARCHIVE
스토리지 엔진의 기능
스토리지 제한 | 없음 | 트랜잭션 | 아니오 | 잠금 입도 | 테이블 |
MVCC | 아니오 | 지리 공간 데이터 형식 지원 | 예 | 지리 공간 인덱스의 지원 | 아니오 |
B 트리 인덱스 | 아니오 | T 트리 인덱스 | 아니오 | 해시 인덱스 | 아니오 |
전체 검색 인덱싱 | 아니오 | 클러스터 된 인덱스 | 아니오 | 데이터 캐시 | 아니오 |
인덱스 캐시 | 아니오 | 압축 데이터 | 예 | 암호화 데이터 [a] | 예 |
클러스터 데이터베이스 지원 | 아니오 | 복제 지원 [b] | 예 | 외래 키 지원 | 아니오 |
백업 / 시점 복구 [c] | 예 | 쿼리 캐시 지원 | 예 | 데이터 사전을위한 업데이트 통계 | 예 |
[a] 스토리지 엔진 내부가 아닌 서버에서 (암호화 함수를 사용하여) 구현되어 있습니다. [b] 스토리지 엔진 내부가 아닌 서버에서 구현되어 있습니다. [c] 스토리지 엔진 내부가 아닌 서버에서 구현되어 있습니다. |
ARCHIVE
스토리지 엔진은 MySQL 바이너리 배포판에 포함되어 있습니다. 소스에서 MySQL을 구축하는 경우에이 스토리지 엔진을 활성화하려면 CMake를 -DWITH_ARCHIVE_STORAGE_ENGINE
옵션으로 호출합니다.
ARCHIVE
엔진의 소스를 확인하려면 MySQL 소스 배포판의 storage/archive
디렉토리를 검색합니다.
ARCHIVE
스토리지 엔진이 SHOW ENGINES
명령문에서 사용할 수 있는지 여부를 확인할 수 있습니다.
ARCHIVE
테이블을 만들 때 서버는 데이터베이스 디렉토리에 테이블 형식 파일을 만듭니다. 파일은 테이블 이름에서 시작 .frm
확장자가 붙습니다. 스토리지 엔진은 다른 파일을 만듭니다. 모든 파일 이름은 테이블 이름으로 시작합니다. 데이터 파일의 확장자는 .ARZ
입니다. 최적화 작업 중에 .ARN
파일이 나타나는 경우가 있습니다.
ARCHIVE
엔진은 INSERT
와 SELECT
를 지원하고 있습니다 만, DELETE
, REPLACE
또는 UPDATE
를 지원하지 않습니다. ORDER BY
조작, BLOB
컬럼 기본적으로 공간 데이터 형식을 제외한 모든 데이터 형식을 지원합니다 ( 섹션 11.5.1 "공간 데이터 형식" 을 참조하십시오). ARCHIVE
엔진은 낮은 수준 잠금을 사용합니다.
ARCHIVE
엔진은 AUTO_INCREMENT
컬럼 속성을 지원합니다. AUTO_INCREMENT
컬럼은 고유 인덱스 또는 고유하지 않은 인덱스 중 하나를 지정할 수 있습니다. 다른 컬럼에 인덱스를 만들려고하면 오류가 발생합니다. ARCHIVE
엔진은 각각 새 테이블의 첫 번째 순서 값을 지정하거나 기존 테이블의 시퀀스 값을 재설정 할 CREATE TABLE
문 AUTO_INCREMENT
테이블 옵션도 지원하고 있습니다.
ARCHIVE
은 현재 최대 컬럼 값보다 작은 값을 AUTO_INCREMENT
컬럼에 삽입하는 기능을 지원하지 않습니다. 그렇게하려고하면 ER_DUP_KEY
오류가 발생합니다.
ARCHIVE
엔진은 BLOB
컬럼이 요구되지 않는 경우는 그들을 무시하고 읽는 동안 그들을지나 스캔합니다.
스토리지 : 행이 삽입 될 때 압축됩니다. ARCHIVE
엔진은 zlib
무손실 데이터 압축을 사용합니다 ( http://www.zlib.net/ 를 참조하십시오). OPTIMIZE TABLE
을 사용하여 테이블을 분석하고보다 작은 포맷에 테이블을 압축 할 수 있습니다 ( OPTIMIZE TABLE
을 사용하는 이유에 대해서는이 섹션 뒷부분을 참조하십시오). 이 엔진은 CHECK TABLE
도 지원하고 있습니다. 사용되는 삽입 유형에는 여러 가지가 있습니다.
INSERT
문은 줄을 압축 버퍼에 단순히 넣고 버퍼는 필요에 따라 플래시합니다. 버퍼에 삽입은 잠금으로 보호되어 있습니다.SELECT
는 들어온 삽입INSERT DELAYED
(필요에 따라 플래시) 뿐이었다 경우를 제외하고는 강제로 플래시를 발생시킵니다. 섹션 13.2.5.2 "INSERT DELAYED 구문" 을 참조하십시오.대량 삽입은 다른 삽입이 동시에 발생한 경우를 제외하고 (이 경우 부분적으로 가시됩니다) 완료 후에만 표시됩니다.
SELECT
로드 중 정상 삽입이 발생한 경우를 제외하고 대량 삽입을 플래시하는 것은 아닙니다.
제거 : 제거시 요청에 의해 행이 압축 해제 된 행 캐시는 없습니다. SELECT
작업을 통해 전체 테이블 스캔이 실행됩니다. SELECT
가 발생하면 현재 사용할 수있는 행수를 감지하고 그 행을 읽습니다. SELECT
는 일관성 독해로서 실행됩니다. 대량 삽입 또는 지연 삽입 만 사용 된 경우를 제외하고 삽입시 많은 SELECT
문이 압축 품질을 저하시킬 수 있습니다. 압축 품질을 높이기 위해 OPTIMIZE TABLE
또는 REPAIR TABLE
을 사용할 수 있습니다. SHOW TABLE STATUS
에 의해보고되는 ARCHIVE
테이블의 행수는 항상 정확합니다. 섹션 13.7.2.4 "OPTIMIZE TABLE 구문」 , 섹션 13.7.2.5 "REPAIR TABLE 구문」 및 섹션 13.7.5.37 "SHOW TABLE STATUS 구문" 을 참조하십시오.
추가 리소스
ARCHIVE
스토리지 엔진에 특화된 포럼은 http://forums.mysql.com/list.php?112 에서 볼 수 있습니다.