본문으로 바로가기
본문으로 바로가기

삭제 뮤테이션

삭제 뮤테이션은 DELETE를 사용해 테이블 데이터를 조작하는 ALTER 쿼리를 의미합니다. 대표적인 예로 ALTER TABLE DELETE와 같은 쿼리가 있습니다. 이러한 쿼리를 실행하면 데이터 파트의 새로운 뮤테이션 버전이 생성됩니다. 이는 뮤테이션 이전에 삽입된 모든 데이터에 대해 전체 데이터 파트를 다시 기록하도록 해당 SQL 문을 트리거하며, 결과적으로 매우 많은 쓰기 요청으로 이어집니다.

참조

DELETE 작업의 경우, 기본 MergeTree 테이블 엔진 대신 ReplacingMergeTreeCollapsingMergeTree와 같은 전용 테이블 엔진을 사용하면 이러한 대량의 쓰기 요청을 피할 수 있습니다.

ALTER TABLE ... DELETE 문

ALTER TABLE [db.]table [ON CLUSTER cluster] DELETE WHERE filter_expr

지정된 필터링 표현식과 일치하는 데이터를 삭제합니다. 뮤테이션으로 구현됩니다.

참고

ALTER TABLE 접두사는 SQL을 지원하는 대부분의 다른 시스템과 이 구문의 형태가 다름을 의미합니다. 이는 OLTP 데이터베이스의 유사한 쿼리와 달리, 이 연산이 자주 사용하도록 설계되지 않은 무거운 연산임을 나타내기 위한 것입니다. ALTER TABLE은 삭제 전에 기본 데이터를 병합해야 하는 무거운 연산으로 간주됩니다. MergeTree 테이블에서는 경량한 삭제를 수행하며 훨씬 더 빠를 수 있는 DELETE FROM 쿼리 사용을 고려하십시오.

filter_exprUInt8 타입이어야 합니다. 쿼리는 이 표현식의 값이 0이 아닌 테이블의 행을 삭제합니다.

하나의 쿼리에 쉼표로 구분된 여러 명령을 포함할 수 있습니다.

쿼리 처리의 동기화 여부는 mutations_sync SETTING으로 정의됩니다. 기본값은 비동기입니다.

함께 보기