🧑💻/SQL
SQL) DROP vs TRUNCATE vs DELETE 차이 비교
유리맥
2021. 3. 4. 00:55
반응형
DROP, TRUNCATE, DELETE는 모두 삭제하는 명령어이지만 차이가 있습니다.
한눈에 알아보기 쉽게 표로 정리해 보았습니다. 😀
DROP | TRUNCATE | DELETE | |
종류 | DDL | DDL (일부 DML 성격) | DML |
COMMIT | AUTO COMMIT | AUTO COMMIT | 사용자 COMMIT |
ROLLBACK | 불가능 | 불가능 | COMMIT 이전에 가능 |
Storage | Storage 삭제 (테이블 스키마 삭제) | 최초 테이블 생성 시 할당된 Storage만 남기고 삭제 (테이블 스키마 유지) | 데이터 모두 DELETE 해도 Storage 삭제X |
수행 시 | 테이블 정의 자체 삭제 | 테이블을 최소 생성된 초기 상태로 만듬 | 데이터만 삭제 |
사용 예제 | DROP TABLE STUDENT; | TRUNCATE TABLE STUDENT; | DELETE FROM STUDENT; |
로그 | 안남김 | 안남김 | 남김 |
속도 | 빠름 | 빠름 | 느림 |
DELETE에 조건(Where)이 없으면 TRUNCATE와 동일하게 모든 데이터가 삭제되고 테이블 스키마만 남는 빈 껍데기 형태가 됩니다.
그러면 속도가 빠른 TRUNCATE 쓰는게 좋겠네? 라고 생각하기 쉽지만
DELETE 명령어는 데이터 복구가 가능하고, 로그를 남기므로, 중점을 어디에 두느냐에 따라 다르게 사용될 수 있습니다.
반응형