Web/DB
[Oracle] DELETE, TRUNCATE 차이
돈기법
2022. 3. 29. 18:10
DELETE FROM user_table
TRUNCATE TABLE user_table
[DELETE]
DML(Data Manipulation Language) 종류 중 하나이다.
delete문은 where절 사용이 가능하고, 테이블에 있는 데이터를 하나하나 선택하여 제거하는 방식.
where절을 쓰지 않고 테이블 내에 모든 데이터를 삭제하더라도, 내부적으로는 한줄한줄 일일히 제거하는 과정을 거친다.
-> 쿼리문 처리 속도가 길다.
따라서 원하는 데이터만 골라서 삭제할 때는 delete를 사용하고,
테이블의 전체 데이터를 삭제하고자 할 때는 truncate를 사용하는 것이 좋다.
delete를 사용해서 삭제한 데이터는 commit 전에는 rollback을 통해 되돌릴 수 있다.
[TRUNCATE]
DDL(Data Definition Language) 종류 중 하나이다.
truncate문은 테이블에 있는 데이터를 한번에 제거하며, 테이블이 최초 생성되었을 당시의 저장공간만 남긴다.
(create table을 한 직후의 상태로 만듦.)
truncate문은 자동 commit이 되므로 rollback이 불가능하니 주의해야한다.