Loading...
MySQL 9.5 Reference Manual 9.5의 18.5 The ARCHIVE Storage Engine의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
ARCHIVE 스토리지 엔진은 인덱스되지 않은 대량의 데이터를 매우 작은 공간에 저장하는 특수 목적의 테이블을 생성합니다.
Table 18.5 ARCHIVE Storage Engine Features
| Feature | Support |
|---|---|
| B-tree indexes | No |
| Backup/point-in-time recovery (스토리지 엔진이 아니라 서버에 구현됨) | Yes |
| Cluster database support | No |
| Clustered indexes | No |
| Compressed data | Yes |
| Data caches | No |
| Encrypted data | Yes (암호화 함수를 통해 서버에 구현됨) |
| Foreign key support | No |
| Full-text search indexes | No |
| Geospatial data type support | Yes |
| Geospatial indexing support | No |
| Hash indexes | No |
| Index caches | No |
| Locking granularity | Row |
| MVCC | No |
| Replication support (스토리지 엔진이 아니라 서버에 구현됨) | Yes |
| Storage limits | None |
| T-tree indexes | No |
| Transactions | No |
| Update statistics for data dictionary | Yes |
ARCHIVE 스토리지 엔진은 MySQL 바이너리 배포판에 포함됩니다. 소스에서 MySQL을 빌드할 때 이 스토리지 엔진을 활성화하려면 CMake를 -DWITH_ARCHIVE_STORAGE_ENGINE 옵션과 함께 호출하십시오.
ARCHIVE 엔진의 소스를 확인하려면, MySQL 소스 배포판의 storage/archive 디렉터리를 살펴보십시오.
ARCHIVE 스토리지 엔진을 사용할 수 있는지 확인하려면 SHOW ENGINES 문을 사용하십시오.
ARCHIVE 테이블을 생성하면, 스토리지 엔진은 테이블 이름으로 시작하는 파일들을 생성합니다. 데이터 파일의 확장자는 .ARZ입니다. 최적화 작업 중에는 .ARN 파일이 나타날 수 있습니다.
ARCHIVE 엔진은 INSERT, REPLACE, 그리고 SELECT는 지원하지만, DELETE나 UPDATE는 지원하지 않습니다.
ORDER BY 연산, BLOB 컬럼, 그리고 공간 데이터 타입은 지원합니다 (Section 13.4.1, “Spatial Data Types” 참조). 지리 공간 참조 시스템은 지원되지 않습니다.
ARCHIVE 엔진은 행 수준 잠금을 사용합니다.
ARCHIVE 엔진은 AUTO_INCREMENT 컬럼 속성을 지원합니다. AUTO_INCREMENT 컬럼은 유니크 또는 비유니크 인덱스를 가질 수 있습니다. 다른 컬럼에 대해 인덱스를 생성하려고 하면 에러가 발생합니다.
ARCHIVE 엔진은 또한 새 테이블에 대한 초기 시퀀스 값을 지정하거나 기존 테이블에 대한 시퀀스 값을 재설정하기 위해 CREATE TABLE 문에서 AUTO_INCREMENT 테이블 옵션을 지원합니다.
ARCHIVE는 현재 최대 컬럼 값보다 작은 값을 AUTO_INCREMENT 컬럼에 삽입하는 것을 지원하지 않습니다. 이렇게 시도하면 ER_DUP_KEY 에러가 발생합니다.
ARCHIVE 엔진은 요청되지 않은 BLOB 컬럼을 무시하고, 읽는 동안 이를 건너뜁니다.
ARCHIVE 스토리지 엔진은 파티셔닝을 지원하지 않습니다.
Storage: Row는 삽입될 때 압축됩니다. ARCHIVE 엔진은 zlib 비손실 데이터 압축을 사용합니다 (http://www.zlib.net/ 참조).
OPTIMIZE TABLE을 사용하여 테이블을 분석하고 더 작은 포맷으로 압축할 수 있습니다 (OPTIMIZE TABLE을 사용할 이유는 이 절의 뒷부분을 참조). 이 엔진은 또한 CHECK TABLE을 지원합니다.
사용되는 삽입 유형에는 여러 가지가 있습니다:
INSERT 문은 row를 압축 버퍼에 넣기만 하고, 필요에 따라 버퍼가 플러시됩니다. 버퍼로의 삽입은 잠금으로 보호됩니다. SELECT는 플러시가 발생하도록 강제합니다.
벌크 인서트는 완료된 후에만 보입니다. 단, 동시에 다른 삽입이 발생하는 경우에는 부분적으로 보일 수 있습니다. SELECT는 일반 삽입이 로딩 중에 발생하지 않는 한 벌크 인서트의 플러시를 절대 유발하지 않습니다.
Retrieval: 검색 시, row는 요청에 따라 압축이 해제되며, row 캐시는 없습니다.
SELECT 연산은 전체 테이블 스캔을 수행합니다: SELECT가 발생하면, 현재 사용 가능한 row 수를 파악하고 그 수만큼 row를 읽습니다.
SELECT는 일관된 읽기로 수행됩니다. 삽입 동안 많은 수의 SELECT 문을 실행하면, 벌크 인서트만 사용하는 경우가 아니라면 압축 효율이 떨어질 수 있다는 점에 유의하십시오.
더 나은 압축을 위해 OPTIMIZE TABLE 또는 REPAIR TABLE을 사용할 수 있습니다.
SHOW TABLE STATUS에 의해 보고되는 ARCHIVE 테이블의 row 수는 항상 정확합니다.
Section 15.7.3.4, “OPTIMIZE TABLE Statement”, Section 15.7.3.5, “REPAIR TABLE Statement”, Section 15.7.7.39, “SHOW TABLE STATUS Statement”를 참조하십시오.
ARCHIVE 스토리지 엔진 전용 포럼은 https://forums.mysql.com/list.php?112에서 이용할 수 있습니다.18.4.2 CSV Limitations
18.6 The BLACKHOLE Storage Engine