메인 콘텐츠로 건너뛰기
ClickHouse에서 데이터를 삭제하는 방법은 여러 가지가 있으며, 각 방법마다 장점과 성능 특성이 다릅니다. 데이터 모델과 삭제하려는 데이터 양에 따라 적절한 방법을 선택해야 합니다.
방법구문사용 시점
경량한 삭제DELETE FROM [table]소량의 데이터를 삭제할 때 사용합니다. 행은 이후 실행되는 모든 SELECT 쿼리 결과에서 즉시 제외되지만, 처음에는 디스크에서 제거되지 않고 내부적으로 삭제된 것으로만 표시됩니다.
Delete mutationALTER TABLE [table] DELETE데이터를 디스크에서 즉시 삭제해야 할 때 사용합니다(예: 컴플라이언스). SELECT 성능에 부정적인 영향을 줍니다.
테이블 비우기TRUNCATE TABLE [db.table]테이블의 모든 데이터를 효율적으로 제거합니다.
파티션 삭제DROP PARTITION파티션의 모든 데이터를 효율적으로 제거합니다.
다음은 ClickHouse에서 데이터를 삭제하는 여러 방법을 요약한 내용입니다:

경량한 삭제

경량한 삭제를 사용하면 행이 즉시 삭제된 것으로 표시되어, 이후의 모든 SELECT 쿼리에서 자동으로 제외됩니다. 이렇게 삭제로 표시된 행은 이후 자연스러운 머지 주기 동안 제거되므로 I/O 부담이 더 적습니다. 따라서 일정 기간 동안 데이터가 스토리지에서 실제로 삭제되지 않고 삭제된 것으로만 표시될 수 있습니다. 데이터가 확실히 삭제되도록 보장해야 한다면 위의 뮤테이션 명령을 고려하십시오.
-- 경량한 삭제를 사용하여 2018년의 모든 데이터를 삭제합니다. 권장되지 않습니다.
DELETE FROM posts WHERE toYear(CreationDate) = 2018
경량한 DELETE SQL 문으로 대량의 데이터를 삭제하면 SELECT 쿼리 성능에도 부정적인 영향을 줄 수 있습니다. 또한 이 명령은 프로젝션이 있는 테이블과 호환되지 않습니다. 이 작업에서는 삭제된 행을 표시하기 위해 뮤테이션이 사용되며(_row_exists 컬럼 추가), 그 과정에서 일부 I/O가 발생합니다. 일반적으로 삭제된 데이터가 디스크에 남아 있어도 괜찮은 경우(예: 컴플라이언스 요구 사항이 없는 경우)에는 뮤테이션보다 경량한 삭제를 우선적으로 사용하는 것이 좋습니다. 다만 모든 데이터를 삭제해야 하는 경우에는 이 방식도 피해야 합니다. 경량한 삭제에 대해 자세히 알아보십시오.

삭제 뮤테이션

삭제 뮤테이션은 예를 들어 ALTER TABLE ... DELETE 명령으로 실행할 수 있습니다.
-- mutation을 사용하여 2018년의 모든 데이터를 삭제합니다. 권장되지 않습니다.
ALTER TABLE posts DELETE WHERE toYear(CreationDate) = 2018
이 작업은 동기식(비복제인 경우 기본값) 또는 비동기식(mutations_sync 설정에 따라 결정)으로 실행할 수 있습니다. 이는 WHERE 표현식과 일치하는 모든 파트를 다시 쓰므로 I/O 사용량이 매우 큽니다. 이 프로세스에는 원자성이 없습니다. 즉, 뮤테이션된 파트가 준비되는 즉시 기존 파트와 교체되며, 뮤테이션이 진행되는 동안 실행을 시작한 SELECT 쿼리는 이미 뮤테이션된 파트의 데이터와 아직 뮤테이션되지 않은 파트의 데이터를 함께 보게 됩니다. 사용자는 system.mutations 테이블을 통해 진행 상태를 추적할 수 있습니다. 이는 I/O 부담이 큰 작업이므로 클러스터의 SELECT 성능에 영향을 줄 수 있어 꼭 필요한 경우에만 사용해야 합니다. 삭제 뮤테이션에 대해 자세히 알아보십시오.

테이블 비우기

테이블의 모든 데이터를 삭제해야 하는 경우 아래와 같이 TRUNCATE TABLE 명령을 사용하십시오. 이는 경량 작업입니다.
TRUNCATE TABLE posts
TRUNCATE TABLE에서 자세한 내용을 확인하십시오.

파티션 삭제

데이터에 사용자 지정 파티셔닝 키를 사용한 경우 파티션을 효율적으로 삭제할 수 있습니다. 카디널리티가 높은 파티셔닝은 피하는 것이 좋습니다.
ALTER TABLE posts (DROP PARTITION '2008')
DROP PARTITION에 대해 자세히 알아보세요.

추가 자료

마지막 수정일 2026년 6월 10일