Mở một kết nối DB tốn kém: bắt tay TCP, thiết lập TLS, xác thực, cấp phát tài nguyên phía server — mất mili-giây và tiêu tốn bộ nhớ mỗi kết nối. Nếu mỗi request mở rồi đóng kết nối riêng thì độ trễ và tải tăng nhanh.
Connection pool giữ sẵn một tập kết nối đang mở, tái sử dụng: request mượn một kết nối rảnh, dùng xong trả lại pool thay vì đóng. Lợi ích:
- Giảm độ trễ: bỏ chi phí thiết lập lặp lại.
- Giới hạn tải DB: DB có trần max_connections; pool chặn số kết nối đồng thời, tránh làm DB quá tải.
Tham số hay chỉnh: kích thước tối thiểu/tối đa, thời gian chờ mượn, idle timeout. Lưu ý kiến trúc serverless/nhiều instance: mỗi instance một pool nhỏ có thể cộng dồn vượt trần DB → dùng pooler bên ngoài (PgBouncer, RDS Proxy) đặt giữa app và DB. Pool quá nhỏ gây chờ đợi; quá lớn làm nghẽn DB — cần đo và cân chỉnh.