Přeskočit na obsah
_CORE
Know-How

Connection Pooling

6 min čtení
DatabaseConnection PoolPostgreSQLPerformance

Každé DB spojení stojí ~10MB RAM. Bez poolingu vytvoříte stovky spojení a DB se zhroutí.

Proč pooling

  • TCP handshake + TLS = ~100ms per connection
  • PostgreSQL fork per connection = ~10MB RAM
  • Max connections limit (default 100)
  • Connection reuse = dramaticky nižší latence

SQLAlchemy pool

from sqlalchemy import create_engine engine = create_engine( "postgresql://user:pass@localhost/db", pool_size=20, max_overflow=10, pool_timeout=30, pool_recycle=1800, # Recyklace po 30 min )

PgBouncer

# pgbouncer.ini [databases] mydb = host=localhost port=5432 dbname=mydb [pgbouncer] pool_mode = transaction # Doporučeno max_client_conn = 1000 default_pool_size = 25

Klíčový takeaway

Vždy poolujte. SQLAlchemy pool_size=20, PgBouncer pro sdílení poolu mezi aplikacemi.

CORE SYSTEMS tým

Praktické know-how z reálných projektů. Bez buzzwordů, s kódem.