본문 바로가기
CS/DB

DELETE / TRUNCATE / DROP 비교

by 넬준 2021. 12. 4.

DELETE / TRUNCATE / DROP 비교 그림

 

DELETE

  • DML
  • WHERE 구를 사용하여 원하는 행을 선택하여 삭제할 수 있고, 사용하지 않으면 테이블 모든 행을 삭제할 수 있다.
  • 내부적으로 한줄씩 제거하는 과정을 거친다.
  • 따라서 쿼리문 처리속도가 느릴 수 있다.
  • 데이터는 삭제하지만 데이터가 있던 storage는 release되지 않고 그대로다.
DELETE FROM table1;

 

DELETE FROM table1 WHERE 조건식;
ROLLBACK;
COMMIT;

TRUNCATE

  • DDL
  • 데이터를 전부 삭제하지만, 테이블 정의는 지워지지 않는다.
  • 테이블이 최초 생성되었을 당시로 돌아간다. 즉, 최초 생성 시 storage만 남아있고, 데이터가 있던 stroage는 release 된다.
TRUNCATE TABLE table1;

DROP

  • DML
  • 테이블 자체를 데이터베이스에서 삭제한다.
DROP TABLE table1;

 

 

 

  DELETE TRUNCATE DROP
명령어 종류 DML DDL DDL
처리 속도 느림 빠름 빠름
Commit 사용자가 직접 자동 자동
Rollback 가능 여부 Commit 이전엔 가능 x x
삭제 정도 데이터만 삭제 테이블 생성 당시 상태로 되돌림 테이블을 완전히 삭제

 

 

 

참조

https://blog.naver.com/idjoopal/221559099309

https://lee-mandu.tistory.com/476

'CS > DB' 카테고리의 다른 글

(MySQL) INNER JOIN  (0) 2022.08.12
인덱스  (0) 2021.12.06
테이블 생성 / 삭제 / 변경  (0) 2021.12.04
데이터베이스 계층 구조  (0) 2021.12.04
IN / EXISTS / 상관 서브쿼리  (0) 2021.12.04

댓글