Open jinsusong opened 1 year ago
delete : 테이블의 row단위로 데이터를 삭제하는 DML이며, DML의 특성상 롤백이 가능하지만.
truncate, drop : 테이블 단위로 이루어지는 DDL로, 특성상 복구(Rollback)가 불가능하다.
데이터를 모두 날리는 경우에는, Delete보다 DDL이 빠르고 유리하지만,
테이블의 구조와 스키마는 지우지 않고 남기고 싶을때, Truncate를 사용하며,
테이블의 모든정보를 지울때만, Drop을 사용한다.
DDL, DML, DCL : https://brownbears.tistory.com/180
DELETE 명령어는 데이터는 지워지지만 테이블 용량은 줄어 들지 않는다. 원하는 데이터만 지울 수 있다. 삭제 후 잘못 삭제한 것을 되돌릴 수 있다.
TRUNCATE 명령어는 용량이 줄어 들고, 인덱스 등도 모두 삭제 된다. 테이블은 삭제하지는 않고, 데이터만 삭제한다. 한꺼번에 다 지워야 한다. 삭제 후 절대 되돌릴 수 없다.
DROP 명령어는 데이블 전체를 삭제, 공간, 객체를 삭제한다. 삭제 후 절대 되돌릴 수 없다.