SQL

SQL

TRUNCATE는 DELETE보다 훨씬 빠르다

페이지 정보

profile_image
영삼이
0건 53회 25-03-28 15:27

본문

TRUNCATEDELETE보다 훨씬 빠르다

데이터 삭제 시 성능이 중요한 경우 TRUNCATE를 고려하자


DELETE 사용 시 성능 저하

DELETE FROM orders WHERE status = 'completed';
  • DELETE각 행을 삭제하며,

  • 제약 조건(foreign key, triggers 등)을 확인하고 처리하기 때문에 성능에 부하가 크다.

  • 또한 트랜잭션 로그에 모든 삭제가 기록되므로, 대량 데이터를 삭제할 경우 매우 느려질 수 있다.


TRUNCATE 사용 시 성능 개선

TRUNCATE TABLE orders;
  • TRUNCATE테이블의 모든 데이터를 삭제하되,

  • 행 단위 삭제가 아니라 테이블을 비우는 방식으로 빠르게 처리됨

  • 트랜잭션 로그 기록을 최소화하므로 성능이 뛰어남


차이점

  • TRUNCATE롤백 불가능, 조건을 걸 수 없음

  • DELETE조건을 걸어 부분 삭제 가능, 롤백 가능


언제 TRUNCATE를 사용할까?

  • 테이블 전체 데이터 삭제가 필요할 때

  • 성능이 중요한 경우, 데이터가 많을 때


✔️ 전체 데이터 삭제 시 성능이 중요한 경우 TRUNCATE를 사용하자.
조건에 맞는 데이터 삭제가 필요한 경우 DELETE가 더 적합하다.

댓글목록

등록된 댓글이 없습니다.