Coding Planet

[SQLD] DELETE, TRUNCATE, DROP 비교 본문

DB, SQL

[SQLD] DELETE, TRUNCATE, DROP 비교

jhj.sharon 2023. 8. 31. 20:23
반응형
  DELETE TRUNCATE DROP 
테이블 데이터 삭제 O O O
테이블 스키마 삭제 O X O
디스크 용량 초기화 X

O X
테이블이 사용했던 Storage를 즉시 Release
로그 남기기 O X X
종류 DML DDL DDL
ROLLBACK 가능여부 Commit 이전에는 가능 불가능 불가능
Commit Auto Commit Auto Commit 사용자 Commit

 

* 디스크 용량 초기화 : 저장 공간을 재사용 가능하도록 해제한다. 

** 로그남기기 : 삭제에 대한 로그를 남기는 것. DELETE는 삭제 로그가 남는다.

 

  • DELETE를 사용할 경우 데이터를 삭제하더라도 실제로 디스크에서 사용하는 공간이 즉시 해제되는 것은 아니다. 데이터베이스가 재사용 수 있도록 디스크 공간을 남길수 있다.
  • 특히 DELETE 연산은 로그파일을 남기므로 로그 파일이 증가한다. 로그 파일은 트랜잭션 복구나 데이터 복원을 위해 사용된다.
  • TRUNCATE는 UNDO를 위한 데이터(로그)를 생성하지 않기 때문에 동일 데이터량 삭제시 DELETE보다 빠르다
반응형
Comments