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

업데이트 뮤테이션

업데이트 뮤테이션은 업데이트를 통해 테이블 데이터를 조작하는 ALTER 쿼리를 의미합니다. 대표적으로 ALTER TABLE UPDATE와 같은 쿼리가 해당됩니다. 이러한 쿼리를 수행하면 데이터 파트의 새로운 뮤테이션 버전이 생성됩니다. 이는 해당 뮤테이션 이전에 삽입된 모든 데이터에 대해 전체 데이터 파트를 다시 쓰게 된다는 의미이며, 매우 많은 쓰기 요청으로 이어집니다.

참조

업데이트의 경우 기본 MergeTree 테이블 엔진 대신 ReplacingMergeTree 또는 CollapsingMergeTree와 같은 전용 테이블 엔진을 사용하면 대량의 쓰기 요청을 피할 수 있습니다.

ALTER TABLE ... UPDATE SQL 문

ALTER TABLE [db.]table [ON CLUSTER cluster] UPDATE column1 = expr1 [, ...] [IN PARTITION partition_id] WHERE filter_expr

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

참고

ALTER TABLE 접두사는 이 구문이 SQL을 지원하는 대부분의 다른 시스템과 다른 구문임을 나타냅니다. 이는 OLTP 데이터베이스의 유사한 쿼리와 달리, 자주 사용하는 용도로 설계되지 않은 무거운 연산임을 의미합니다.

filter_exprUInt8 타입이어야 합니다. 이 쿼리는 filter_expr가 0이 아닌 값을 갖는 행에서, 지정된 컬럼의 값을 해당 컬럼에 대해 지정된 표현식의 값으로 업데이트합니다. 값은 CAST 연산자를 사용하여 컬럼 타입으로 캐스팅됩니다. 기본 키나 파티션 키 계산에 사용되는 컬럼은 업데이트할 수 없습니다.

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

쿼리 처리의 동기/비동기 방식은 mutations_sync 설정에 의해 결정됩니다. 기본적으로 비동기식입니다.

관련 항목