Python

如何最好地將 SQLAlchemy 中的連接池用於 PgBouncer 事務級池?

  • October 15, 2015

使用 SQLAlchemy 查詢 PgBouncer 後面的 PostgreSQL 數據庫,使用事務級池。

用於這種設置的最佳模式是什麼?我應該使用一個每個程序ConnectionPool一個引擎,還是應該為每個請求創建一個引擎,並NullPool為它們中的每一個使用?我應該使用完全不同的模式嗎?

非常感謝!讓我知道是否需要更多資訊,我會盡快更新。

使用 PGBouncer,您可能只想堅持使用 NullPool。在這種情況下,您可能能夠跨子程序共享單個引擎,因為不會在子程序邊界上傳輸套接字連接。但是您不能在此邊界上共享任何引用 Connection 對象的內容,例如具有活動事務的 Session。但是,您絕對不想執行“每個請求的引擎”,引擎是一個昂貴的對象,它會在第一次看到特定數據庫 URL 時積累大量有關特定數據庫 URL 的資訊。

引用自:https://dba.stackexchange.com/questions/36828