delete 와 truncate의 차이

Programming/Database 2013.01.25 댓글 Joshua95

프로젝트를 진행하다 보면, 특정 Table의 데이타를 전체 삭제해 주어야 할 경우가 있습니다.

그럴 경우, 아무 생각 없이 delete 쿼리를 사용하게 됩니다.

그리고 데이타 량이 많아서 한참을 멍 때리고 있어야 하는 기억이 있습니다.


실제 테이블의 데이타를 삭제하는 방식은 다음의 몇가지 방식이 있습니다.

속도 면에서 아래로 내려갈 수록 속도가 빠를 것이라는 것은 금방 예상이 가능합니다.

각 명령어 마다의 차이를 숙지하고 상황에 따라서 적당하게 데이터를 삭제해 봅시다.

 

* DELETE : 

    - 테이블은 남기도 데이터를 삭제합니다. 

    - 롤백이 가능합니다.

    - 데이터 삭제 후에도 사용 용량 줄어들지 않음에 주의합니다.

    - seq. 넘버 등은 계속 유지됩니다.

    - 특정 조건의 일부 데이타 만을 삭제하고 싶은 경우에 사용합니다.

                          

* TRUNCATE : 

    - 테이블을 최초 상태로 초기화 합니다.

    - 롤백 불가능합니다.

    - 데이터 삭제 후 사용 용량도 초기화됩니다.

    - 그냥 초기화 하는 것이다 보니 속도 빠르므로 모든 데이터를 삭제하고 싶을 때 사용합니다.

 

* DROP : 

  - 테이블 자체를 완전히 삭제합니다.

  - 테이블을 삭제하고 새로 생성하고 싶은 경우에 사용합니다.

 

** 결론

  - 테이블 사용 중에 특정 데이터를 삭제할 경우에는  DELETE 를 사용한다.

  - 테이블의 데이터나 정보를 깨끗이 밀고 싶을 때는 TRUNCATE 를 사용한다

  - 그냥 테이블 자체를 날리고 싶을 때는 DROP 을 사용한다.


 - 2013.01.25 Joshua95

 

댓글