트랜잭션 종료 비용 비교

같은 "종료"라도
COMMIT은 확정, ROLLBACK은 복구라서 비용이 다릅니다.

핵심은 명령어 이름보다 종료 직전에 DB가 실제로 해야 하는 작업입니다.

공유 시작점

이미 대량 변경이 수행된 뒤, 트랜잭션을 끝낼 방법을 선택하는 순간입니다. 이때 두 명령은 같은 자리에서 출발하지만 처리 내용이 갈립니다.

UPDATE 1,000,000 rows
구분
COMMIT

변경을 인정하고 끝낸다

ROLLBACK

변경을 원래 값으로 되돌린다

종료 전에 하는 일
로그를 안전하게 기록

이 변경이 확정됐다는 사실을 로그에 남기면 종료 조건을 만족합니다.

Undo를 따라 실제 복원

바뀐 값마다 이전 이미지를 적용해, 수정된 내용을 하나씩 취소해야 합니다.

작업의 무게중심
확정 기록 중심

데이터 파일 반영은 이후에 이어질 수 있어, 사용자 응답은 상대적으로 빨리 끝납니다.

데이터 복구 중심

변경량이 많을수록 되돌릴 양도 커지므로, 취소 자체가 큰 작업이 됩니다.

체감 결과
보통 빠르게 완료

"확정했다"는 체크에 가깝기 때문에 종료 응답이 짧게 느껴집니다.

느려질 수 있음

잠금 해제만 하는 것이 아니라 복구가 끝나야 하므로 대량 DML에서는 특히 오래 걸립니다.

한 줄 결론

COMMIT은 "이 변경을 확정한다"는 기록 작업이고, ROLLBACK은 "이미 바뀐 상태를 복구한다"는 데이터 작업입니다. 그래서 실패 시 비용까지 고려하면 두 종료의 무게가 같지 않습니다.