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 |
삭제 정도 | 데이터만 삭제 | 테이블 생성 당시 상태로 되돌림 | 테이블을 완전히 삭제 |
참조
'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 |
댓글