Что такое connection pool
Python
Senior
Без компании
Что такое connection pool
Ответы
Connection pool — это техника оптимизации, позволяющая переиспользовать уже установленные соединения с БД вместо создания новых для каждого запроса. Это снижает накладные расходы на установку соединения (TCP handshake, аутентификация и т.д.).
Пример с `psycopg2` (PostgreSQL):
```
import psycopg2
from psycopg2 import pool
# Создание пула
connection_pool = psycopg2.pool.SimpleConnectionPool(
minconn=1,
maxconn=10,
host="localhost",
database="test",
user="user",
password="password"
)
# Получение соединения из пула
conn = connection_pool.getconn()
cursor = conn.cursor()
cursor.execute("SELECT * FROM users")
print(cursor.fetchall())
# Возврат соединения в пул
connection_pool.putconn(conn)
```
Ключевые преимущества:
- Уменьшает латенси при частых запросах
- Контролирует максимальное число соединений
- Автоматически управляет жизненным циклом соединений
Популярные реализации: `DBUtils`, `SQLAlchemy`, `Django ORM` имеют встроенные пулы соединений.