🌿 중급 DB
데이터베이스 연결 풀 크기 설정
쉽게 이해하기
식당의 테이블 수를 생각해보세요. 테이블이 10개면 동시에 10팀만 받을 수 있습니다. 너무 적으면 손님이 대기하고, 너무 많으면 공간과 인건비가 낭비됩니다. 데이터베이스 연결 풀도 마찬가지로 적절한 크기를 찾는 게 중요합니다.
핵심 정리
동시 접속자 수에 맞춰 데이터베이스 연결 개수를 조정하는 방법입니다.
자세히 알아보기
데이터베이스 연결 풀 크기는 서버가 동시에 열어둘 수 있는 데이터베이스 연결 개수입니다. 연결 풀이 너무 작으면 요청이 몰렸을 때 대기 시간이 길어지고, 너무 크면 메모리와 CPU를 낭비하게 됩니다.
일반적으로 CPU 코어 수의 2배 정도를 기본값으로 설정합니다. 예를 들어 4코어 서버라면 풀 크기를 8~10 정도로 시작합니다. 하지만 실제 최적값은 애플리케이션의 쿼리 패턴, 평균 응답 시간, 동시 접속자 수에 따라 달라집니다.
Node.js의 Knex나 Python의 SQLAlchemy 같은 ORM은 연결 풀을 자동으로 관리하지만, 설정을 조정할 수 있습니다. 예를 들어 Prisma에서는 connection_limit 옵션으로 풀 크기를 지정할 수 있습니다.
실무에서는 모니터링 도구로 연결 풀 사용률을 추적합니다. 풀이 항상 100%로 차있다면 크기를 늘리고, 50% 이하로 유지된다면 줄일 수 있습니다. 특히 서버리스 환경에서는 연결 풀 관리가 까다로워서 Supabase나 PlanetScale 같은 서비스가 자동으로 최적화해주는 기능을 제공합니다.