PostgreSQL 连接池 pgbouncer

码农软件 · 软件分类 · 数据库连接池 · 2019-09-03 17:58:11

软件介绍

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 里添加那部分支持。

本文地址:https://www.codercto.com/soft/d/13804.html

深入理解Java虚拟机

深入理解Java虚拟机

周志明 / 机械工业出版社 / 2011-6 / 69.00元

《深入理解Java虚拟机:JVM高级特性与最佳实践》内容简介:作为一位Java程序员,你是否也曾经想深入理解Java虚拟机,但是却被它的复杂和深奥拒之门外?没关系,本书极尽化繁为简之妙,能带领你在轻松中领略Java虚拟机的奥秘。本书是近年来国内出版的唯一一本与Java虚拟机相关的专著,也是唯一一本同时从核心理论和实际运用这两个角度去探讨Java虚拟机的著作,不仅理论分析得透彻,而且书中包含的典型案......一起来看看 《深入理解Java虚拟机》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具