티스토리 뷰

Database

Connection Pool

세이브 2021. 9. 18. 00:52

 

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://medium.com/@k.wahome/database-connections-less-is-more-86c406b6fad

 


 

 

 

<참고>
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

brownbears.tistory.com/289

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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함