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보다 빠르다
반응형