Coding Planet
[SQLD] DELETE, TRUNCATE, DROP 비교 본문
반응형
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보다 빠르다
반응형
'DB, SQL' 카테고리의 다른 글
[SQLD] SQL 연산자의 우선순위 - SQLD 기출문제 포함 (0) | 2023.09.01 |
---|---|
[SQLD] 데이터베이스에서 트랜잭션의 격리성(Isolation)이 낮은 경우 발생하는 문제점들 (0) | 2023.08.31 |
[SQLD] 데이터베이스 제약조건 : CASCADE, RESTRICT, AUTOMATIC, DEPENDENT의 차이점 (0) | 2023.08.31 |
[SQLD] 테이블 컬럼 삭제 - ALTER TABLE 테이블명 DROP COLUMN 삭제할컬럼명; (0) | 2023.08.31 |
[SQLD] 테이블의 컬럼명, 자료형 변경하기 - Oracle, SQLServer (0) | 2023.08.30 |
Comments