본문 바로가기
DataBase

[SQL]TRUNCATE

by 바까 2021. 9. 25.
반응형

 

-----------------------------------------------------------------  
--truncate 
대용량의 테이블을 빠르게 지우는 방법으로 TRUNCATE가 있다.
테이블의 세그먼트 자체를 바로 지우기 때문에 빠르게 데이터가 지워진다.


--실습준비
CREATE TABLE big_table AS 
SELECT * FROM ADDRESS;

INSERT INTO big_table
SELECT * FROM ADDRESS; 

SELECT * from big_table; 

--truncate 사용
TRUNCATE TABLE big_table; --테이블의 데이터를 빠르게 삭제

--여러개 테이블 데이터를 빠르게 삭제
TRUNCATE TABLE big_table,big_table2;

COMMIT; 
ROLLBACK; -->오라클은 truncate는 롤백 불가능, postgresql은 롤백가능

SELECT * from big_table;

INSERT INTO big_table
SELECT * FROM ADDRESS; 
SELECT * from big_table;

TRUNCATE TABLE big_table;

<delete 와의 차이점>
delete 명령어는 데이터는 지워지지만 테이블 용량은 줄어들지 않는다
원하는 데이터만 지울 수 있다. 
삭제 후 잘못 삭제한 것을 되돌 릴 수 있다!!
속도가 느리다.

반면 truncate 명령어는 테이블의 용량이 줄어든다.
테이블은 삭제하지 않고, 데이터만 삭제한다. 한꺼번에 다 지워야 한다.
되돌릴 수 없다!!(posgresql은 가능)
속도가 빠르다
반응형

'DataBase' 카테고리의 다른 글

[sqld 자격증]제로베이스 SQL 온라인 완주반 수강 후기  (0) 2021.10.18
[SQL]임시 테이블  (0) 2021.09.25
[SQL]테이블 제거  (0) 2021.09.25
[SQL]컬럼 이름 변경  (0) 2021.09.25
[SQL]컬럼 데이터 타입 변경  (0) 2021.09.25

댓글