本页介绍了什么是“托管连接池”,以及如何将其与 Cloud SQL 实例搭配使用。
借助托管式连接池,您可以使用池化技术优化 Cloud SQL for PostgreSQL 实例的资源利用率和连接延迟时间,从而扩缩工作负载。 托管式连接池会尽可能将服务器连接动态分配给传入请求。这可以吸收突然的连接高峰并重复使用现有的数据库连接,从而显著提升性能,尤其是对于规模化的连接。托管式连接池会连接到一个池化器集群,而不是连接到特定数据库,从而缩短连接时间并提高工作负载的可伸缩性。使用的池化器数量取决于实例的 vCPU 核心数量。
虽然您可以将托管式连接池用于任何事务工作负载,但对于包含短时连接的应用或会导致连接激增的应用,托管式连接池可提供最大的吞吐量和延迟时间优势。
对于长连接,使用托管式连接池的连接性能可能会略低于使用直接连接时的性能。在这种情况下,托管式连接池可在连接数非常高时提供连接缩放。不过,对于通常建立长期有效连接的应用,您可以改用与实例的直接连接。
如需详细了解如何启用托管式连接池,请参阅配置托管式连接池。
要求
如需使用托管式连接池,您的实例必须满足以下要求:
- 您的实例必须是 Cloud SQL 企业 Plus 版实例。
- 您必须使用直接连接或仅使用 Cloud SQL Auth 代理连接到实例。
- 您必须使用有效的用户名和密码连接到实例。使用托管式连接池时,不支持 IAM 和 IAM 群组用户。
- 您的实例必须设置为使用专用服务访问通道、使用公共 IP,或者是启用了 Private Service Connect 的新实例。
- 您的实例必须使用新的 Cloud SQL 网络架构。
- 托管式连接池的最低维护版本号为
POSTGRES_$version.R20250302.00_04
。如需了解详情,请参阅自助维护。
可用的配置选项
托管式连接池提供以下可使用pool_mode
参数设置的池化选项:
transaction
(默认):在事务级别池化连接。session
:在会话级别池化连接。
您还可以使用以下配置参数自定义托管连接池:
max_pool_size
:连接池的大小上限。默认值为 50 个连接。min_pool_size
:连接池的阈值大小。如果服务器连接数少于min_pool_size
,请向池中添加更多服务器连接。默认值为 0 个连接。max_client_connections
:实例允许的最大连接数。默认值为 5,000 个连接。client_connection_idle_timeout
:客户端连接在超时之前保持空闲的时间。此值的范围为 0 到 2,147,483 秒,默认值为 0 秒。server_connection_idle_timeout
:服务器连接在超时之前保持空闲的时间。此值的范围为 0 到 2,147,483 秒,默认值为 600 秒。query_wait_timeout
:查询等待超时的时间。此值的范围为 0 到 2,147,483 秒,默认值为 120 秒。max_prepared_statements
:事务池化模式下支持的协议级命名预处理语句命令的数量上限。默认值为 0。ignore_startup_parameters
:您希望忽略的参数,这些参数默认不会在托管式连接池的启动数据包中跟踪。server_lifetime
:服务器连接在被托管连接池关闭之前的闲置时长上限。默认值为 3600 秒。
限制
将托管式连接池与 Cloud SQL 企业 Plus 版实例搭配使用时,请注意以下限制:
- 在现有实例上启用托管式连接池会导致数据库重启。
- 当您使用 Cloud SQL API 启用、停用或配置托管式连接池时,
instance.update
API 不得包含任何其他实例配置更新。 - 托管连接池只能与 Cloud SQL Auth 代理版本 2.15.2 及更高版本搭配使用。
- 如果您使用的是 Cloud SQL Go 语言连接器,我们建议您使用 Go 版本至少为
1.24
。如果您使用的是 Go 1.23 或更低版本,则在使用托管式连接池时可能会遇到性能限制。 如果您在
transaction
池化模式下使用托管连接池,则不支持以下 SQL 功能:SET/RESET
LISTEN
WITH HOLD CURSOR
PREPARE/DEALLOCATE
PRESERVE/DELETE ROW
临时表LOAD
- 会话级建议锁
如果您使用的是 Cloud SQL for PostgreSQL 版本 17,则不支持
sslnegotiation=direct
选项。