Пул соединений (БД)
Приём, при котором ограниченное число соединений с базой повторно используется множеством клиентов вместо открытия нового соединения на каждый запрос. Критичен для PostgreSQL, где каждое соединение — отдельный процесс с большими накладными расходами памяти.
Проблема: PostgreSQL создаёт процесс ОС на каждое соединение (~5–10 МБ), и тысячи соединений убивают сервер. Пулер (PgBouncer, Pgpool или встроенный в драйвер) держит, скажем, 20 физических соединений и мультиплексирует через них тысячи клиентов. Режимы: сеансовый (клиент занимает соединение на весь сеанс), транзакционный (соединение возвращается после каждой транзакции — максимальное переиспользование, но ломает подготовленные выражения и временные таблицы), на уровне выражения. Serverless + пулинг — известная ловушка (каждый экземпляр lambda открывает свои соединения), отсюда пулеры в Supabase и Neon. PgBouncer в транзакционном режиме — де-факто стандарт.