티스토리 뷰
Connection
: 클라이언트(애플리케이션 서버)측에서 데이터베이스에 접속하여 query를 수행한 후 , 결과를 받고 접속을 종료하는 일련의 과정을 말한다
mysql.createConnection() ---> connection.connect() ---> connection.query() ---> connection.end()
Connection Pool
Connection Pool이란 여러 접속자들이 가질 수 있는 Connection을 Pool에 모아놓고 관리하는 것을 말한다.
다시 말해, DB에 연결된 Connection들을 미리 만들어 Pool에 저장해 두고 필요할 때 꺼내쓰고 다시 Pool에 반환하는 방식을 말한다.
Connection Pool을 사용할 경우 Pool속에 미리 Connection들이 생성되어 있기 때문에 Connection을 생성하는데 시간이 소비되지 않습니다. 또 Connection을 계속해서 재사용하기 때문에 Connection의 수가 불필요하게 늘어나는 것도 막을 수 있습니다.
MS SQL이나 Oracle같은 유로 DBMS는 타임아웃 기능이 존재하여, 자동으로 release해준다.
반면에 MySql은 자동으로 connection realese를 해주지 않는데, connection pool을 사용할 경우 자동으로 release 해준다.
*타임아웃(time out) : Connection을 자동으로 release(접속종료)해주는 것을 말한다.
<참고>
https://cotak.tistory.com/105
effectivesquid.tistory.com/entry/Timeout%EC%97%90-%EA%B4%80%ED%95%9C-%EC%A0%95%EB%A6%AC
medium.com/@k.wahome/database-connections-less-is-more-86c406b6fad
github.com/mysqljs/mysql/issues/1202
'Database' 카테고리의 다른 글
Database 설계시 염두해둬야 하는 것들 (0) | 2022.09.13 |
---|---|
Redis (0) | 2021.09.18 |
Binary log와 DB복구 (Mysql version) (0) | 2021.09.17 |
Transaction log (0) | 2021.09.17 |
Index (0) | 2021.09.17 |