프로젝트를 진행하다 보면, 특정 Table의 데이타를 전체 삭제해 주어야 할 경우가 있습니다.
그럴 경우, 아무 생각 없이 delete 쿼리를 사용하게 됩니다.
그리고 데이타 량이 많아서 한참을 멍 때리고 있어야 하는 기억이 있습니다.
실제 테이블의 데이타를 삭제하는 방식은 다음의 몇가지 방식이 있습니다.
속도 면에서 아래로 내려갈 수록 속도가 빠를 것이라는 것은 금방 예상이 가능합니다.
각 명령어 마다의 차이를 숙지하고 상황에 따라서 적당하게 데이터를 삭제해 봅시다.
* DELETE :
- 테이블은 남기도 데이터를 삭제합니다.
- 롤백이 가능합니다.
- 데이터 삭제 후에도 사용 용량 줄어들지 않음에 주의합니다.
- seq. 넘버 등은 계속 유지됩니다.
- 특정 조건의 일부 데이타 만을 삭제하고 싶은 경우에 사용합니다.
* TRUNCATE :
- 테이블을 최초 상태로 초기화 합니다.
- 롤백 불가능합니다.
- 데이터 삭제 후 사용 용량도 초기화됩니다.
- 그냥 초기화 하는 것이다 보니 속도 빠르므로 모든 데이터를 삭제하고 싶을 때 사용합니다.
* DROP :
- 테이블 자체를 완전히 삭제합니다.
- 테이블을 삭제하고 새로 생성하고 싶은 경우에 사용합니다.
** 결론 :
- 테이블 사용 중에 특정 데이터를 삭제할 경우에는 DELETE 를 사용한다.
- 테이블의 데이터나 정보를 깨끗이 밀고 싶을 때는 TRUNCATE 를 사용한다
- 그냥 테이블 자체를 날리고 싶을 때는 DROP 을 사용한다.
- 2013.01.25 Joshua95
'Programming > Database' 카테고리의 다른 글
[PostgreSQL] 인덱스 정보 확인하기 (0) | 2018.07.06 |
---|---|
[H2] insert 방식에 따른 성능 테스트 (0) | 2016.09.26 |
[PostgreSQL] 테이블 Lock 확인하기 (0) | 2013.01.23 |
DB별 Top N 얻어오기 (0) | 2011.11.29 |
[MSSQL] DISTINCT와 GROUP BY의 차이 (4) | 2011.10.21 |
댓글