pgbouncer

pgbouncerPostgreSQL的輕量的連線池,支持三種模式

介紹,特性,

介紹

PgBouncer 是 PostgreSQL的輕量的連線池,支持三種模式。
  • Session pooling/會話連線池
  • 最禮貌的方法。在客戶端連線的時候,在它的連線生命期內,會給它賦予一個伺服器連線。在客戶端斷開的時候,伺服器連線會放回到連線池中。
  • Transaction pooling/事務連線池
  • 伺服器連線只有在一個事務里的時候才賦予客戶端。在 PgBouncer 注意到事務結束的時候,伺服器將會放回連線池中。這是一個 hack,因為它打破了套用對後段連線的看法。只有在套用配合這樣的使用模式,沒有使用會破壞這種使用模式的時候才能用這個連線方式。參閱下標獲取會破壞 這種模式的特性。
  • Statement pooling/語句連線池
  • 最激進的模式。這是事務連線池的一個扭曲的變種 - 不允許多語句的事務。這就意味著是在客戶端強制“autocomit”模式,主要是給 PL/Proxy 用的。
  • 記憶體需求低(預設的時候每個連線 2k)。這事因為PgBouncer 不需要一次就看到完整的包。
  • 它不是和單個後端伺服器綁定的,目標資料庫可以位於不同的主機上。
  • 對大多數設定,都支持線上的重新配置,無需重啟。
  • 支持線上的重啟/升級,而不會退出客戶端的連線。
只支持協定 V3 版本,因此後段版本必須 >= 7.4。

特性

特性
會話連線池
事務連線池
啟動參數
支持 [0]
支持 [0]
SET/RESET
支持
從不支持
LISTEN/NOTIFY
支持
從不支持
WITHOUT HOLD CURSOR
支持
支持
WITH HOLD CURSOR
支持 [1]
從不支持
協定級別的準備好的規劃
支持 [1]
不支持 [2]
PREPARE / DEALLOCATE
支持 [1]
從不支持
ON COMMIT DROP 臨時表
支持
支持
PRESERVE/DELETE ROWS 臨時表
支持 [1]
從不支持
重置快取的規劃
支持 [1]
支持 [1]
LOAD 語句
支持
從不支持
  • [0] - 啟動參數是: client_encoding,datestyle,timezone 和 standard_conforming_strings。PgBouncer 會判斷這些參數的變化並且它能保證對客戶端來說是一致的。從 PgBouncer 1.1 開始可用。
  • [1] - 完全透明要求 PostgreSQL 8.3 和 PgBouncer 1.1,並且還要設定 server_reset_query = DISCARD ALL
  • [2] - 我們可以在 PgBouncer 里添加那部分支持。
更多項目動態可去項目源地址查看

相關詞條

熱門詞條

聯絡我們