티스토리 뷰

DELETE, TRUNCATE, DROP 명령어 모두 삭제하는 명령어이지만 중요한 차이점이 있다.

 

DELETE

  1. 데이터는 지워지지만 테이블 용량이 줄어들지 않는다.
  2. 원하는 데이터만 지울 수 있고 삭제 후 COMMIT 이전에 ROLLBACK을 통해 되돌릴 수 있다.
  3. ROLLBACK 정보를 기록하므로 TRUNCAT에 비해 느리다.
  4. 삭제 시 행수를 반환한다.

TRUCATE

  1. 용량이 줄어들고, 인덱스 등도 삭제된다.
  2. 테이블은 삭제되지 않고, 데이터만 삭제한다.
  3. 원하는 데이만 지울 수 없고 전체 삭제만 가능하다.
  4. 삭제 후 되돌릴 수 없다.
  5. 삭제 행수를 반환하지 않는다.

DROP 

  1. 테이블 전체를 삭제, 공간, 객체를 삭제한다.
  2. 삭제 후 되돌릴 수 없다.
구분 테이블 정의 저장 공간 작업속도 SQL 구분
DELETE 존재 유지 느림 DML
TRUNCATE 존재 반납 빠름 DDL
DROP 삭제 반납 빠름 DDL

일반적으로 DELETE를 많이 사용하지만 IF 수집/제공을 하는 경우에 테이블 전체 삭제 후 데이터를 적재하는 경우가 생긴다. 이런 상황에서 데이터 양이 많다면 TRUNCATE를 사용하여 처리해야 한다. DELETE 만으로 데이터를 삭제하면 겉으로는 데이터가 삭제는 되지만 저장공간이 지워지지 않고 또한 삭제 작업 속도가 느려 문제가 발생할 요지가 있다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함