Python
如何最好地將 SQLAlchemy 中的連接池用於 PgBouncer 事務級池?
使用 SQLAlchemy 查詢 PgBouncer 後面的 PostgreSQL 數據庫,使用事務級池。
用於這種設置的最佳模式是什麼?我應該使用一個每個程序
ConnectionPool
一個引擎,還是應該為每個請求創建一個引擎,並NullPool
為它們中的每一個使用?我應該使用完全不同的模式嗎?非常感謝!讓我知道是否需要更多資訊,我會盡快更新。
使用 PGBouncer,您可能只想堅持使用 NullPool。在這種情況下,您可能能夠跨子程序共享單個引擎,因為不會在子程序邊界上傳輸套接字連接。但是您不能在此邊界上共享任何引用 Connection 對象的內容,例如具有活動事務的 Session。但是,您絕對不想執行“每個請求的引擎”,引擎是一個昂貴的對象,它會在第一次看到特定數據庫 URL 時積累大量有關特定數據庫 URL 的資訊。