когда есть пул приложения?
Это зависит от того, как реализован пул приложения. Если он умеет ограничивать число коннектов к базе, то внешний пулер вам не нужен. Если же пулер приложения умеет только переиспользовать свободные соединения, но если их нет, то создаёт новое, то тогда он не спасёт от запуска слишком большого числа бэкендов.
По той же причине, экономия на количестве воркеров на стороне СУБД - уменьшение кол переключений контекста , ProcArrayLock`s, backend forks ... Если у Вас 1 или 2 бэкэнда с десятком соединений, то можно и напрямую к субд. Но если у Вас, к примеру, микросервисная архитектура, и таких бэкэндов (со своими пулами) десятки и сотни, Вы получите огромное кол простаивающих (idle) сессий на стороне БД. В общем, при большом количестве соединений (как правило больше чем количество физических ядер CPU в системе), запросы начинают работать медленней чем могли бы.
Обсуждают сегодня