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