详情页标题前

阿里云RDS数据库设置连接池类型-云淘科技

详情页1

RDS的数据库独享代理提供连接功能,您可以根据业务选择合适的连接池类型,有效解决连接数过多或短连接业务(例如PHP)频繁建立新连接导致实例负载过高的问题。

前提条件

开通并配置数据库代理服务

背景信息

RDS独享代理提供2种类型连接池,详细说明如下:

  • 事务级连接池(默认)

    事务级连接池主要用于减少直接连接到数据库的业务连接数,以及减少短连接场景下频繁建连带来的负载。独享代理默认使用事务级连接池,适用于总连接数比较多(如连接数上万)的场景。

    阿里云RDS数据库设置连接池类型-云淘科技说明

    • 开启事务级连接池后,客户端与独享代理间可以存在上千个连接,但代理与后端数据库间可能只存在几十或几百个连接。

    • 独享代理本身并没有最大连接数的限制,连接数的限制还是由后端数据库中计算节点的规格决定。未开启事务级连接池时,每条由客户端发起的连接都需要在后端主节点和所有只读节点上各创建一个对应的连接。

      开启事务级连接池后,当客户端发送请求时,会先与独享代理建连,代理不会马上将其与后端数据库建连,而是先从事务级连接池里查找是否存在可用的连接(判断是否为可用连接的条件:userdbname和系统变量这3个参数值是否一致)。若不存在,代理会与数据库创建一个新连接;若存在,则从连接池里直接拿出并使用,并在当前事务结束后将该连接放回事务级连接池,方便下个请求继续使用。

    • 事务级连接池使用中有一些限制,请参见事务级连接池限制。

  • 会话级连接池阿里云RDS数据库设置连接池类型-云淘科技

    会话级连接池适用于短连接场景。

    会话级连接池主要用于减少短连接业务频繁建立新连接带来的实例负载。当某客户端连接断开时,系统会判断当前连接是否为闲置连接,如果是闲置连接,系统会将该连接放到代理的连接池中并保留一小段时间。当客户端重新发起新连接时,若连接池中有可用的连接(命中的条件包括user、clientip和dbname等),则可直接使用,从而减少与数据库的建连开销。如果连接池内没有可用的闲置连接,则走正常连接流程,与数据库重新建立新连接。

    说明

    • 会话级连接池并不能减少数据库的并发连接数,而是通过降低应用与数据库建立连接的速率来减少MySQL主线程的开销,更好地处理业务请求。但连接池里的闲置连接会短暂占用您的连接数。

    • 会话级连接池不能解决由于存在大量慢SQL,导致的连接堆积问题,您需要先解决慢SQL问题。

注意事项

  • 请勿给同一个数据库账号在不同IP下设置不同的权限,可能会导致连接复用时权限出错。例如user@192.168.1.1设置了database_a的权限,而user@192.168.1.2没有database_a的权限,则开通连接池可能会导致权限错误问题。

  • 连接池功能是指数据库代理的连接池功能,不影响客户端的连接池功能,如果您的客户端已经支持连接池,则可以不使用数据库代理的连接池功能。

事务级连接池限制

  • 执行以下操作时,连接将被锁定直至连接结束(即该连接不会再被放到连接池里供其它用户连接使用)。

    • 执行PREPARE语句或命令。

    • 创建临时表。

    • 修改用户变量。

    • 大报文(例如16 MB以上)。

    • 使用LOCK TABLE。

    • 多语句。

    • 存储过程调用。

  • 不支持FOUND_ROWS、ROW_COUNT和LAST_INSERT_ID函数的调用,这些函数可以调用成功,但是无法保证调用结果的正确性。其中:

    • 1.13.11及以上的数据库代理版本支持在SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT *语句后直接使用SELECT FOUND_ROWS()命令。但MySQL官方已不推荐该用法,建议您将SELECT FOUND_ROWS()替换为SELECT COUNT(*) FROM tb1进行查询,详情请参见FOUND_ROWS()。

    • 1.13.11及以上的数据库代理版本支持在INSERT后直接使用SELECT LAST_INSERT_ID()语句,来保证查询结果正确性。

  • 对于设置了wait_timeout的连接,wait_timeout在客户端的表现可能不会生效,因为每次请求都会从连接池中获取连接,当wait_timeout超时后,只有连接池中的后端连接会断开,而后端连接断开并不会导致客户端连接断开。

  • 除了sql_modecharacter_set_servercollation_servertime_zone这四个变量以外,如果业务依赖其他session级别的系统变量,那么需要客户端在建连之后显式执行set语句,否则连接池可能会复用系统变量已经被更改过的连接。

  • 由于连接可能会被复用,您可以使用select connection_id()查询当前连接的thread id。

  • 由于连接可能会被复用,所以show processlist或者SQL洞察显示的IP地址和端口可能和客户端实际的IP地址和端口不一致。

  • 数据库代理会将所有节点上的show processlist结果合并后返回,在事务级连接池开启后,前端连接和后端连接的thread id无法对应。这导致kill命令可能会报错,但是实际上kill命令已经正常执行成功,可再通过show processlist确定相应的连接是否断开。

如何选择连接池

您可以根据如下建议评估选择是否开启连接池以及开启何种类型的连接池:

  • 事务级连接池:若业务使用的连接数较多(如连接数需求上万)或使用的是Serverless服务(即连接数会随着业务端服务器的扩容而线性增加),且确认您的业务不涉及上述事务级连接池使用限制的场景,那么您可以选择开启事务级连接池。

  • 会话级连接池:若业务使用的纯短连接,且业务使用场景中包含上述事务级连接池使用限制的场景,那么您可以考虑开启会话级连接池。

  • 不使用:若业务使用的多为长连接且连接数较少,或者业务本身已具备较好的连接池,那么您可以不使用RDS的连接池功能。

修改连接池

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏单击数据库代理

  3. 单击代理终端(原读写分离)页签,在目标代理终端区域中的连接池右侧选择连接池类型。

    说明

    修改连接池类型仅对新连接生效。

相关API

API

描述

DescribeDBProxy

查询RDS实例的数据库独享代理详情。

DescribeDBProxyEndpoint

查询RDS实例独享代理的连接地址信息。

ModifyDBProxyEndpoint

修改RDS实例数据库独享代理的代理终端设置。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:http://www.yunxiaoer.com/155567.html

(0)
上一篇 2023年12月9日 下午7:40
下一篇 2023年12月9日 下午7:40
详情页2

相关推荐

  • 腾讯云内容分发网络CDNCDN 加速 CVM 概述

    本文详细介绍了腾讯云 CDN 加速云服务器 CVM 的实例。 内容分发网络 CDN 腾讯云 CDN 通过将分发资源发布至遍布全国的海量加速节点,结合腾讯自研 GSLB 调度系统,使其用户可就近获取所需资源,避免网络拥堵、地域、运营商等因素带来的访问延迟问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。 云服务器 CVM 腾讯云 CVM 提供了在云中的…

    2023年12月9日
  • 腾讯云对象存储Hadoop 文件系统与 COS 之间的数据迁移

    简介 Hadoop Distcp(Distributed copy)主要是用于 Hadoop 文件系统内部或之间进行大规模数据复制的工具,它基于 Map/Reduce 实现文件分发、错误处理以及最终的报告生成。由于利用了 Map/Reduce 的并行处理能力,每个 Map 任务负责完成源路径中部分文件的复制,因此它可以充分利用集群资源来快速完成集群或 Had…

    2023年12月9日
  • 腾讯云对象存储下载对象

    简介 本文档提供关于对象的下载操作相关的 API 概览以及 SDK 示例代码。 API 操作名 操作描述 GET Object 下载对象 下载一个对象至本地 高级接口(推荐) 高级接口指定暂停、恢复以及取消下载请求,同时支持断点下载功能。说明 高级接口的下载是直接把对象写进了指定的本地文件中,如果需要一个下载流,参考本页的简单操作。 创建 TransferM…

    腾讯云 2023年12月9日
  • 腾讯云云点播自定义域名

    操作场景 开通云点播后,系统将为您分配一个默认域名xxx.vod2.myqcloud.com,您在云点播中的所有资源将默认使用该域名。您也可以登录 云点播控制台 自定义添加并解析域名。 前提条件 已成功申请云点播服务,详细请参见 购买指引。待添加的域名已成功备案,详细请参见 备案流程。 添加域名 1. 登录 云点播控制台,单击左侧导航栏应用管理,进入应用列表…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云云直播云导播台相关

    云导播台资源包如何购买? 您可以在云直播控制台 > 云导播台 的云导播台列表页单击购买资源包进行购买。 云导播台资源包如何使用? 导播输出资源包可在 云导播台列表页 单击绑定导播台绑定到指定导播台使用,绑定成功后当日生效,30天后失效,具体计费规则请查看 预付费说明文档 。 云导播台资源包包含转推费用吗? 不包含。云导播台资源包支持抵扣单个导播台的导播…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。