Lab 09: Connection Pooling
Step 1 — The Connection Cost Problem
-- PostgreSQL: each connection = a backend process
SELECT count(*) AS active_connections FROM pg_stat_activity;
SELECT setting AS max_connections FROM pg_settings WHERE name = 'max_connections';
-- Check connection overhead
SELECT pid, usename, application_name, state, wait_event_type,
ROUND(EXTRACT(EPOCH FROM (NOW() - backend_start))) AS age_seconds
FROM pg_stat_activity
WHERE pid != pg_backend_pid()
ORDER BY backend_start;Step 2 — PgBouncer: Install and Configure
Step 3 — PgBouncer Pooling Modes
Mode
Connection reuse
Transaction behavior
Use case
Step 4 — PgBouncer: SHOW Commands
Column
Meaning
Step 5 — ProxySQL for MySQL
Step 6 — ProxySQL: SHOW POOLS and SHOW STATS
Step 7 — Connection Pool Tuning
Step 8 — Capstone: Sizing a Connection Pool
Summary
Feature
PgBouncer
ProxySQL
Last updated
