Alias 테이블 엔진
Alias 엔진은 다른 테이블에 대한 프록시를 생성합니다. 모든 읽기 및 쓰기 연산은 대상 테이블로 전달되며, Alias 자체는 데이터를 저장하지 않고 대상 테이블에 대한 참조만 유지합니다.
이 기능은 실험적 기능이며, 향후 릴리스에서 하위 호환성을 보장하지 않는 방식으로 변경될 수 있습니다.
allow_experimental_alias_table_engine 설정을 통해
Alias 테이블 엔진 사용을 활성화하십시오.
set allow_experimental_alias_table_engine = 1 명령을 입력하십시오.
테이블 생성
또는 데이터베이스 이름을 명시하여:
Alias 테이블은 컬럼을 명시적으로 정의하는 기능을 지원하지 않습니다. 컬럼은 대상 테이블로부터 자동으로 상속됩니다. 이를 통해 Alias 테이블은 항상 대상 테이블의 스키마와 일치합니다.
엔진 매개변수
target_db (optional)— 대상 테이블이 포함된 데이터베이스의 이름입니다.target_table— 대상 테이블의 이름입니다.
지원되는 연산
Alias 테이블 엔진은 모든 주요 연산을 지원합니다.
대상 테이블에 대한 연산
다음 연산은 대상 테이블로 프록시 처리됩니다:
| Operation | Support | Description |
|---|---|---|
SELECT | ✅ | 대상 테이블에서 데이터 읽기 |
INSERT | ✅ | 대상 테이블에 데이터 쓰기 |
INSERT SELECT | ✅ | 대상 테이블에 배치 삽입 |
ALTER TABLE ADD COLUMN | ✅ | 대상 테이블에 컬럼 추가 |
ALTER TABLE MODIFY SETTING | ✅ | 대상 테이블 설정 수정 |
ALTER TABLE PARTITION | ✅ | 대상 테이블에 대한 파티션 연산 (DETACH/ATTACH/DROP) |
ALTER TABLE UPDATE | ✅ | 대상 테이블의 행 업데이트 (mutation) |
ALTER TABLE DELETE | ✅ | 대상 테이블에서 행 삭제 (mutation) |
OPTIMIZE TABLE | ✅ | 대상 테이블 최적화 (파트 병합) |
TRUNCATE TABLE | ✅ | 대상 테이블 비우기 |
별칭 자체에 대한 연산
이 연산들은 대상 테이블이 아니라 별칭에만 영향을 줍니다:
| Operation | Support | Description |
|---|---|---|
DROP TABLE | ✅ | 별칭만 삭제하며, 대상 테이블은 변경되지 않습니다 |
RENAME TABLE | ✅ | 별칭의 이름만 변경되며, 대상 테이블은 변경되지 않습니다 |
사용 예제
기본 Alias 생성
동일한 데이터베이스 내에 간단한 alias를 생성합니다:
데이터베이스 간 별칭
다른 데이터베이스의 테이블을 가리키는 별칭을 생성합니다:
Alias를 통한 쓰기 작업
모든 쓰기 작업은 대상 테이블로 전달됩니다.
스키마 수정
ALTER 연산은 대상 테이블의 스키마를 변경합니다:
데이터 뮤테이션
UPDATE 및 DELETE 연산이 지원됩니다:
파티션 작업
파티션이 있는 테이블에서는 파티션 작업이 전달됩니다:
테이블 최적화
Optimize 연산은 대상 테이블의 파트를 병합합니다.
별칭 관리
별칭은 서로 독립적으로 이름을 변경하거나 삭제할 수 있습니다: