truncate vs. delete vs. drop

건보공단 자료를 다루는 중인데 import 과정에서 오류가 나면 오류를 해결하고 다시 import 과정을 한다. 그런데 오류가 난 테이블은 일단 내용을 삭제하고 다시 import 하는게 안전하다고 생각해서 delete from 을 이용해서 삭제하는데 이게 속도가 너무 느렸다. 그러다가 인터넷에서 검색을 해보았다.

내가 필요한 기준에 의해서 정리해 봄.

delete는 rollback이 가능한 장점이 있음. 선택적으로 삭제 가능.

truncate는 column 구조를 유지하면서 자료를 모두 날림. 회복 불능.

drop은 column 구조를 포함하여 모두 날림. 회복 불능.