본문 바로가기

SQL

[SQL] DELETE, TRUNCATE, DROP 차이점

728x90
반응형

1. DELETE

-WHERE절을 사용하여 테이블에 있는 데이터를 하나하나 선택하여 제거하는 방식

-WHERE절을 사용하지 않고 테이블의 모든 데이터를 삭제하더라도, 내부적으로는 한줄 한줄 제거하는 과정을 거침

-처리속도가 늦고, 퍼포먼스에 좋지 않은 영향을 줄 수 있음

-원하는 데이터만 골라서 삭제할 때에는 DELETE 사용 / 전체 데이터 삭제할 때에는 TRUNCATE 사용

-데이터를 삭제하더라도 데이터가 담겨있던 Storage는 Release 되지 않는다.

-DELETE 된 데이터는 COMMIT 명령어를 사용하기 전이라면 ROLLBACK 명령어를 통해 되돌릴 수 있음

DELETE
FROM dbTable
WHERE 조건;
ROLLBACK;
COMMIT;

 

2. TRUNCATE

-전체 데이터를 한번에 삭제하는 방식

-최초 생성되었을 당시의 Storage만 남기고 데이터가 담겨있던 Storage는 Release 된다.

-TRUNCATE TABLE을 하면 CREATE TABLE을 한 직후의 상태와 같음

-자동 COMMIT가 되는 명령어이기 때문에 되돌릴 수 없음

TRUNCATE TABLE dbTable;

 

3. DROP

-테이블 자체를 완전히 날려버리는 방식

-테이블 자체가 모두 지워지며, 해당 테이블에 생성되어 있던 모든 인덱스도 사라짐

-자동 COMMIT이 되는 명령어이기 때문에 되돌릴 수 없음

DROP TABLE dbTable;
728x90
반응형

'SQL' 카테고리의 다른 글

mySQL Connector, Mybatis 설정  (0) 2023.02.27
[MySQL] CONCAT & GROUP_CONCAT  (0) 2023.02.13
[SQL] INSERT, UPDATE, DELETE  (0) 2022.11.01
[MySQL] LEFT JOIN, RIGHT JOIN, INNER JOIN, UNION  (0) 2022.11.01
[MyBatis] 동적 태그  (0) 2022.11.01