티스토리 뷰
atoz-develop.tistory.com/entry/DB-Connection-Pool-용어-정리와-Single-Connection의-문제점
위 출처에 따르면, DB와 연결할 때 Connection을 하나 만들고(Single Connection) 그 Connection에서 여러 개의 Statement를 만들어서 사용하다보면 한 가지 문제에 부딪힌다. Statement를 실행하다가 예외가 발생하면 Rollback을 해야하는데, 이 Rollback은 Connection객체를 통해 이루어지기 때문에 그 Connection을 이용해서 생성된 Statement들 전부가 Rollback이 될 수 있다는 것이다.
그렇다고 요청마다 Connection 객체를 생성하자니 실행 속도도 느려지고 garbage가 발생한다. 그래서 DB Connection Pool을 사용한다고 한다.
DB Connection Pool은 Connection객체를 여러 개 만들어서 담아놓고 꺼내썼다가 다시 넣어놓는 방식이다. 재사용되기 때문에 garbage도 발생하지 않고 빠르다고 한다. (여기에서 궁금한 점이 하나 생겼다. 그럼 객체를 몇 개를 만들어놓고 시작해야하는걸까?)
300x250