TRUNCATE는 DELETE보다 훨씬 빠르다
페이지 정보

영삼이
본문
✅ TRUNCATE
는 DELETE
보다 훨씬 빠르다
데이터 삭제 시 성능이 중요한 경우
TRUNCATE
를 고려하자
❌ DELETE
사용 시 성능 저하
DELETE FROM orders WHERE status = 'completed';
-
DELETE
는 각 행을 삭제하며, -
제약 조건(foreign key, triggers 등)을 확인하고 처리하기 때문에 성능에 부하가 크다.
-
또한 트랜잭션 로그에 모든 삭제가 기록되므로, 대량 데이터를 삭제할 경우 매우 느려질 수 있다.
✅ TRUNCATE
사용 시 성능 개선
TRUNCATE TABLE orders;
-
TRUNCATE
는 테이블의 모든 데이터를 삭제하되, -
행 단위 삭제가 아니라 테이블을 비우는 방식으로 빠르게 처리됨
-
트랜잭션 로그 기록을 최소화하므로 성능이 뛰어남
차이점
-
TRUNCATE
는 롤백 불가능, 조건을 걸 수 없음 -
DELETE
는 조건을 걸어 부분 삭제 가능, 롤백 가능
언제 TRUNCATE
를 사용할까?
-
테이블 전체 데이터 삭제가 필요할 때
-
성능이 중요한 경우, 데이터가 많을 때
✔️ 전체 데이터 삭제 시 성능이 중요한 경우 TRUNCATE
를 사용하자.
조건에 맞는 데이터 삭제가 필요한 경우 DELETE
가 더 적합하다.
- 이전글LIKE는 성능이 떨어진다 — FULLTEXT 인덱스를 활용하라 25.03.28
- 다음글UPDATE 문에서 조건을 빠르게 처리하려면 인덱스를 활용하라 25.03.28
댓글목록
등록된 댓글이 없습니다.