Connection Pooling مجموعهای از اتصالهای آماده به پایگاه داده یا سرویس خارجی را نگهداری میکند تا برنامه برای هر درخواست مجبور به ایجاد اتصال جدید نباشد.
Pool میتواند هزینه برقراری اتصال را کاهش دهد، اما اندازه بیشازحد آن فشار زیادی به دیتابیس وارد میکند. ظرفیت Pool باید با تعداد Workerها و محدودیت سرور هماهنگ باشد.
اگر هر درخواست وب اتصال تازهای به PostgreSQL باز کند، هزینه اتصال بالا میرود. Connection Pool میتواند اتصالهای آماده را دوباره استفاده کند.
ایده کانکشن پولینگ در پایتون
# SQLAlchemy example
from sqlalchemy import create_engine
engine = create_engine(
"postgresql+psycopg://app:pass@localhost/shop",
pool_size=10,
max_overflow=5,
)
پول کانکشن هزینه ایجاد اتصال جدید را کاهش میدهد، اما انتخاب Pool Size بدون توجه به سقف اتصال دیتابیس میتواند باعث کمبود منابع شود. هر پروسس معمولاً پول خود را دارد.