트랜잭션이 길어지는 게 성능에 영향을 줄까?

Alex·2025년 2월 3일
0

CS를 공부하자

목록 보기
25/74

트랜잭션이란?

데이터베이스와 한번 이상의 상호작용을 해야 한다고 해보자. 또한, 일련의 작업이 성공하거나 아니면 아예 하나라도 실패 시 모든 변화 내용이 사라지는(all or noting) 방식으로 변경되길 원한다고 해보자.

이런 경우에 우리는 DB 트랜잭션을 활용한다. 트랜잭션은 작업을 성공하거나, 아니면 완전히 실패하거나 방식으로 DB를 조작할 수 있다.

커넥션 풀이란?

일반적으로 DB는 커넥션 풀을 통해서 커넥션을 관리한다.
TCP 방식의 3way-handshake등을 거쳐야 하기 때문에 이 커넥션을 매번 만드는 것은 상당한 비용이 들어가기 때문에, DB 작업이 끝났다고 해서 커넥션을 종료하지 않는다.

미리 커넥션 풀에 커넥션을 여러개 만들어놓고, 이걸 번갈아가면서 재활용하는 방식으로 오버헤드를 줄인다.

트랜잭션을 길게 가져가면, 이 커넥션을 오래 점유하게 되므로 커넥션이 없을 때 DB에서 작업을 하지 못하게 되는 문제가 발생한다.

참고자료

Why Do Long Database Transactions Affect Performance?

profile
답을 찾기 위해서 노력하는 사람

0개의 댓글