SQL

[SQL] TRUNCATE와 DELETE의 차이점

bornsoon 2024. 10. 2. 15:59

TRUNCATE와 DELETE는 모두 데이터를 삭제하는 명령인데

TRUNCATE는 DDL(자동커밋)이고

DELETE는 DML이다.

이 외에도 몇가지의 차이점이 존재한다.

이유는 DELETE와 TRUNCATE의 데이터 삭제 방법이 다르기 때문이다.

 

DELETE

WHERE절을 사용하여 테이블에 있는 데이터를 하나하나 선택하여 제거한다.

 

TRUNCATE

전체 데이터를 한번에 삭제한다.

HWM(high-water mark)를 처음으로 이동시키는 방식으로 테이블 구조는 그대로 남겨둔 채 모든 행을 삭제한다.

 

  SQL 테이블 존재 속도 복구
DELETE DML O 아주 느리다 ROLLBACK
(ONLINE)
TRUNCATE DDL O 매우 느리다 FLASHBACK DATABASE
(OFFLINE)
DROP DDL O 매우 빠르다 FLASHBACK DROP
(ONLINE)
728x90