服务热线:13121395187

  • 优惠活动
  • 云技术
    • 云服务器运维
    • 云数据库技术
    • 云存储技术
    • 云安全服务
    • 云网络服务
    • 木马病毒查杀
    • 渗透测试服务
    • 服务器迁移服务
    • 高并发业务保障服务
    • 数据库运维/专家服务
  • 云慧采
    • 云服务器
    • 云数据库
    • 云存储
    • 云安全
    • 网络与CDN
    • 视频服务
    • 大数据
    • 物联网
    • 人工智能
    • 开发与运维
    • 企业应用
  • 云代理
    • 阿里云
    • 华为云
    • 腾讯云
  • 客户案例
  • 优惠活动
  • 云技术
    • 云服务器运维
    • 云数据库技术
    • 云存储技术
    • 云安全服务
    • 云网络服务
    • 木马病毒查杀
    • 渗透测试服务
    • 服务器迁移服务
    • 高并发业务保障服务
    • 数据库运维/专家服务
  • 云慧采
    • 云服务器
    • 云数据库
    • 云存储
    • 云安全
    • 网络与CDN
    • 视频服务
    • 大数据
    • 物联网
    • 人工智能
    • 开发与运维
    • 企业应用
  • 云代理
    • 阿里云
    • 华为云
    • 腾讯云
  • 客户案例

PolarDB数据库连接池的选择

PolarDB支持会话级连接池和事务级连接池,您可以根据业务场景选择合适的连接池,帮助降低因大量连接导致的数据库负载压力。

云慧采以下介绍的是PolarDB数据库代理的连接池功能。该功能并不影响客户端的连接池功能,如果客户端已经支持连接池,则可以不使用PolarDB数据库代理的连接池功能。

会话级连接池

工作原理

PolarDB数据库连接池的选择

会话级连接池用于减少短连接业务频繁建立新连接导致MySQL负载高。当您的连接断开时,系统会判断当前的连接是否是一个闲置的连接,如果是闲置连接,系统将会代理该连接并保留在连接池中一小段时间,如果这时新的连接建立的话就会直接从连接池里获得连接(命中的条件包括user、clientip和dbname等),从而减少与数据库的建连开销。如果没有可用的连接,则走正常连接流程,重新与数据库建立一个新的连接。

使用限制

    • 会话级连接池并不能减少数据库的并发连接数。该优化只能通过降低应用与数据库的建连速率来减少MySQL主线程的开销,从而更好地处理业务请求,但是连接池里空闲的连接会短暂占您的连接数。
    • 会话级连接池也不能解决由于存在大量慢SQL,导致的连接堆积问题,此类问题的核心是先解决慢SQL问题。

事务级连接池

 

工作原理

PolarDB数据库连接池的选择

事务级连接池主要用于减少直接连接到数据库的业务连接数,以及减少短连接场景下频繁建连带来的负载。

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

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

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

使用限制如下:

    • 当执行以下行为时,锁定连接,直至连接结束,即该连接不会再被放到连接池里供其它用户连接使用。
      • 执行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进行查询。
      • 支持在INSERT后直接使用SELECT LAST_INSERT_ID()语句,来保证查询结果正确性。
    • 对于设置了wait_timeout的连接,wait_timeout在客户端的表现可能不会生效。因为每次请求都会从连接池中获取连接,当wait_timeout超时后,只有连接池中的后端连接会断开,而后端连接断开并不会导致客户端连接断开。
    • 除了sql_mode、character_set_server、collation_server、time_zone这四个变量以外,如果业务依赖其他会话级别的系统变量,那么需要客户端在建连之后显式进行SET语句执行,否则连接池可能会复用系统变量已经被更改过的连接。
    • 由于连接可能会被复用,所以使用select connection_id()查询当前连接的thread id可能会变化。
    • 由于连接可能会被复用,所以show processlist中显示的IP地址和端口,可能会与客户端实际的IP地址和端口不一致。
    • 数据库代理会将所有节点上的SHOW PROCESSLIST结果合并后再返回最终结果,而在事务级连接池开启后,前端连接和后端连接的thread id无法对应。这导致KILL命令会可能返回一个错误,但是实际上KILL命令已经正常执行成功,可再通过SHOW PROCESSLIST确定相应的连接是否断开。

连接池的选择

云慧采建议您根据以下情况评估是否开启连接池以及开启何种类型的连接池:

  • 若业务使用的多为长连接且连接数较少,或者业务本身已具备较好的连接池,那么您可以不使用PolarDB的连接池功能。
  • 若业务使用的连接数较多(如连接数需求上万),且确认您的业务不涉及上述事务级连接池使用限制的场景,那么您可以选择开启事务级连接池。
  • 若业务使用的纯短连接,且业务使用场景中包含上述事务级连接池使用限制的场景,那么您可以考虑开启会话级连接池。

关于PolarDB

PolarDB是阿里云自研的新一代关系型云数据库,兼容MySQL、PostgreSQL、Oracle语法,存储最高100TB,单库可扩展至16个节点。

PolarDB采用存储和计算分离的架构,所有计算节点共享一份数据,提供分钟级的配置升降级、秒级的故障恢复、全局数据一致性和免费的数据备份容灾服务。PolarDB既融合了商业数据库稳定可靠、高性能、可扩展的特征,又具有开源云数据库简单开放、自我迭代的优势,例如PolarDB MySQL作为“超级MySQL”,性能最高可以提升至MySQL的6倍,而成本只有商用数据库的1/10。PolarDB MySQL 100%兼容原生MySQL和RDS MySQL,云慧采可以帮助您在不修改应用程序任何代码和配置的情况下,将MySQL数据库迁移至PolarDB MySQL。

Tags:PolarDB

以上内容对您有帮助吗?如有问题,可联系在线工程师为您提供技术支持

Yes  No
相关内容
  • OceanBase3.0_HTAP数据库介绍及案例
  • 用友NC Cloud全面集成阿里云PolarDB数据库
  • 时序数据库_阿里云时序数据库和开源时序数据库介绍
  • 云数据库2.0_全链路的数据管理与服务平台
  • PolarDB新增数据库慢SQL自动优化改写功能
  • PolarDB架构及数据库代理介绍
产品
  • 云服务大礼包 ¥9,999.00 ¥99.00
  • SSL证书5折起(DV,OV,EV,多域名,通配符,免费SSL证书安装配置) ¥2.00 ¥1.00
  • 漏洞扫描服务 ¥0.00 – ¥1,000.00
  • 阿里云云安全中心(服务器安全防护漏洞自动修复木马病毒查杀) ¥270.00 – ¥1,148.00
  • 阿里云web应用防火墙(WAF)防CC防SQL注入防网页篡改木马后门 ¥149.00 – ¥227,920.00
云数据库技术
  • PolarDB数据库连接池的选择
  • OceanBase3.0_HTAP数据库介绍及案例
  • 用友NC Cloud全面集成阿里云PolarDB数据库
  • 时序数据库_阿里云时序数据库和开源时序数据库介绍
  • 云数据库2.0_全链路的数据管理与服务平台
  • PolarDB新增数据库慢SQL自动优化改写功能
View All 80  
热门内容
  • 阿里云混合云解决方案
  • 网站运维服务都包含哪些?
  • 三级等保测评咨询实施服务
  • 数据库上云迁移方案
  • 性能测试/压力测试指标参考标准
服务分类
  • 物联网技术
  • 云服务器运维
  • 网站运维
  • 云数据库技术
  • 云存储技术
  • 云安全服务
  • 云网络服务
  • 大数据和人工智能
  • CDN与边缘计算
  • 弹性计算
  • 优惠活动
  • 云架构设计优化
  • 迁云实施服务
  • 容灾备份服务
  • 云上护航
  • Linux系统运维
  • 解决方案咨询与实施
  • 视频云技术
  • 混合云与专有云
  • 企业应用
专题
AnalyticDB CDN技术 ClickHouse数据库 Elasticsearch OceanBase PolarDB PostgreSQL数据库 SD-WAN serverless SSL证书 web应用防火墙 云堡垒机 云存储网关 云数据库MongoDB 云数据库RDSmysql 云数据库redis 云服务器 云防火墙 全局流量管理 全球加速 号码隐私保护 多模数据库Lindorm 安全加固 实人认证 容器服务 对象存储OSS 弹性伸缩 性能测试 数据仓库 数据库备份DBS 数据库审计 数据库自治服务DAS 数据湖 文件存储NAS 日志服务 服务网格 混合云存储 物联网安全 等保测评 表格存储Tablestore 运维技术 钉钉宜搭 阿里云优惠
  • 阿里云代理商
  • 腾讯云代理商
  • 华为云代理商
  • 等保测评
  • 数据库备份
  • 堡垒机
  • 阿里云邮箱
  • 华为云服务
  • APM
  • serverless
  • SD-WAN
  • PolarDB
  • 阿里云数据仓库
  • 数据湖
  • 阿里云服务器
  • 腾讯云服务器
  • 华为云服务器
  • 混合云
  • 阿里云混合云
  • SSL证书
  • CDN
  • kafka
  • OCR
  • 阿里云代理
  • 腾讯云代理
  • 华为云代理
  • CDN加速
  • 安全加固
  • 云原生技术
  • 云原生
  • © 2020 云技术|云慧采. All Rights Reserved 服务电话13121395187