728x90
Connection Pool이란 무엇일까요?
Connection Pool은 데이터베이스로의 추가 요청이 필요할 때 연결을 재사용할 수 있도록 관리되는 데이터베이스 연결의 캐시입니다. 이를 사용하면 각 사용자가 데이터베이스 연결을 열고 유지보수하는 것보다 비용과 자원을 절약할 수 있습니다.
Connection Pool은 데이터베이스와 연결된 Connection을 미리 만들어서 Pool 속에 저장해두고, 필요할 때마다 Connection을 Pool에서 가져다 쓰고 다시 Pool에 반환하는 기법입니다. 이를 통해 데이터베이스에 부하를 줄이고 유동적으로 연결을 관리할 수 있습니다.
Connection Pool의 크기는 적절히 조정해야 합니다. 크기를 너무 크게 설정하면 메모리 소모가 커지고, 너무 작게 설정하면 Connection이 많이 발생할 경우 대기 시간이 발생할 수 있습니다. 따라서 서버 부하에 따라 크기를 조절하는 것이 좋습니다.
간단하게 설명하면, Connection Pool은 데이터베이스 연결을 효율적으로 관리해주는 기술이며, 적절한 크기로 설정하여 사용함으로써 데이터베이스에 대한 요청 처리 속도를 높일 수 있습니다.
정리
- Connection Pool을 사용하면 Connection을 재사용하기 때문에 Connection을 생성하고 닫는 시간이 소모되지 않습니다.
- Connection Pool은 미리 생성된 Connection을 Pool에 저장해 두기 때문에 Connection 생성에 소요되는 연결 시간이 줄어듭니다.
- 한 번에 생성될 수 있는 Connection 수를 제어하기 때문에 웹 애플리케이션이 동시 접속자 수가 몰려도 쉽게 다운되지 않습니다.
- Connection Pool에서 생성된 Connection의 개수는 한정적입니다. 동시 접속자가 많아질 경우, Connection Pool은 남아 있는 Connection을 제공합니다. 만약 남아 있는 Connection이 없을 경우 해당 클라이언트는 대기 상태로 전환되고, Connection이 반환되면 대기 중인 클라이언트에게 순서대로 Connection이 제공됩니다.
728x90
'DB' 카테고리의 다른 글
Redis 란?_명령어_brpop (0) | 2023.04.16 |
---|---|
Redis 란?_명령어_기초 (0) | 2023.04.16 |
Redis 란?_Key/value 규칙 (0) | 2023.04.16 |
Redis 란?_기본 정보 (0) | 2023.04.16 |
데이터베이스 트랜잭션(Transaction) 이란? (0) | 2023.04.15 |