网站模板库
  • 首页
  • web前端工具
    • HTML/JS转换工具
    • JS/HTML格式化工具
    • 字母/英文大小写转换工具
    • robots.txt文件生成工具
    • Js压缩/格式化工具
    • Css在线压缩工具_代码格式化
  • 关于我们
    • 免责声明
    • 联系我们
    • 广告服务
    • 服务项目
    • 关于我们
    • 网站轮播
    • 公告
    • 成都优优科技专用
    • 按行业分类
  • web学院
    • 服务器教程
    • 学习资料
      • 基础书籍
      • 交互书籍
      • 入门教程
      • 特效分类
    • 案例分享
    • web资讯
  • 网页特效
    • 图片特效
    • 导航特效
    • 滑动按钮
    • 表单特效
    • 文字特效
    • 弹窗特效
    • 其他特效
  • 织梦模板
    • 科技/电子/数码/通信
    • 文化/艺术/广告/传媒
    • 装修/设计/家居/家具
    • 基建/施工/地产/物业
    • 餐饮/酒店/旅游/票务
    • 食品/果蔬/饮料/日用
    • 服饰/珠宝/礼品/玩具
    • 摄影/婚庆/家政/生活
    • 运动/健身/体育/器材
    • 学校/教育/培训/科研
    • 美容/保健/医院/医疗
    • 金融/财税/咨询/法律
    • 政府/组织/集团/协会
    • 汽车/物流/交通/搬运
    • 机械/设备/制造/仪器
    • 化工/环保/能源/材料
    • 农业/畜牧/养殖/宠物
    • 其他模版
    • IT/软件/信息/互联网
  • 手机模板
    • 手机APP模板
    • 微信小程序模板
    • wap
  • 网站模板
    • joomla模板
    • Drupal模板
    • z-blog模板
    • EyouCms模板
    • Bootstrap模板
    • 帝国cms模板
    • CmsEasy模板
    • MetInfo模板
    • 购物商城模板
      • Shopify主题
      • PrestaShop主题
    • 后台模板
    • 纯HTML模板
    • ecshop模板
    • phpwind模板
    • pbootcms模板
    • phpcms模板
    • wordpress模板
    • discuz模板
  • 教程
    • 织梦教程
    • Discuz教程
    • WordPress教程
    • Phpcms教程
    • Phpwind教程
    • ECShop教程
    • Joomla教程
    • Drupal教程
    • zblog教程
    • EyouCMS教程
    • 帝国cms教程
    • MetInfo教程
    • CmsEasy教程
登录
当前位置:网站模板库 > web学院 > 案例分享 > [GoLang] 优化连接池: 以 database/sql 为例
admin 案例分享 2023-06-25 11:31:53

[GoLang] 优化连接池: 以 database/sql 为例

[GoLang] 优化连接池: 以 database/sql 为例,第1张

[GoLang] 优化连接池: 以 database/sql 为例,第2张

[GoLang] 优化连接池: 以 database/sql 为例

Link: https://github.com/j2gg0s/j2gg0s/blob/main/20230130_go_%E4%BC%98%E5%8C%96%E8%BF%9E%E6%8E%A5%E6%B1%A0.md

之前就看到有些应用在频繁的创建 /关闭数据库链接, 这样的行为大概率不是正确的. [GoLang] 优化连接池: 以 database/sql 为例,过多的链接创建,第3张

MySQL 的链接是昂贵, 在上图也可以看到 create 耗时远超 query 和 exec, 所以大多数的实现都会选择通过链接池来复用已创建的链接.

Go 的 database/sql 也不例外, 你可以通过以下几个参数来调整具体的行为:

  • MaxIdleConns, 最大空闲链接数量, 默认为 2. 当程序尝试将使用完的链接放回连接池时, 如果当前的空闲链接数量大于等于 MaxIdleConns, 则会直接关闭并链接释放.

  • MaxOpneConns, 同时存在的链接数量的最大值, 默认不限制. 这个参数可以避免系统因为突发的, 瞬间的流量而打开大量的数据库链接, 起到保护数据库的作用.

  • ConnMaxLifetime, 链接的最大存活时间, 默认不限制.

  • ConnMaxIdleTime, 链接的最大空闲时间, 默认不限制.

当发现应用持续的大量创建链接, 我们首先需要判断为什么. 通过 database/sql 自带的统计信息可以直观的发现链接主要是因为 idle 而被关闭的. [GoLang] 优化连接池: 以 database/sql 为例,链接关闭原因,第4张

翻阅代码, 业务方也没有额外设置 ConnMaxIdleTime. 那么显然是因为 MaxIdleConns 设置的过小而导致链接被新建并使用后, 因为无法被放入连接池而直接关闭, 进而无法被复用.

此时, 我们可以通过调整 MaxIdleConns 提高链接的复用. 当我们把 MaxIdleConns 从默认的 2 调整到 8 之后, 可以发现链接的复用变得非常好. [GoLang] 优化连接池: 以 database/sql 为例,链接复用率提高,第5张

同时, 可以观察到因为避免大量耗时的链接创建操作, 应用对外的响应时间也有了比较明显的降低. [GoLang] 优化连接池: 以 database/sql 为例,响应时间降低,第6张

虽然对于稳定的应用应该是 p99 收益最明显, 但是这个应用存在其他的耗时操作并主导了 p99.

----------------------- 以下是精选回复-----------------------

答:棒!
答:这个监控面板是怎么来的呀

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » [GoLang] 优化连接池: 以 database/sql 为例

admin 钻石

分享到:
上一篇
是否可以将 Linode VPS 导出,然后导入到 Amazon EC2?
下一篇
买了个香港的云主机,搭 FQ

相关推荐

求好用的三方登陆开源?

求好用的三方登陆开源?

卡住了,问大家一个Python的算法问题吧

卡住了,问大家一个Python的算法问题吧

请问大家有什么从入门到精通的 python 爬虫教程

请问大家有什么从入门到精通的 python 爬虫教程

BS4 求助

BS4 求助

0条评论

发表评论 取消回复

要发表评论,您必须先登录。

提供最优质的资源集合

立即查看 了解详情
网站模板库

主题/付费下载/查看/余额管理/自定义积分,集成支付,卡密,推广奖励等。

本站导航
  • 链接标题
友情链接
  • 链接标题
快速搜索
本站由钛宇宙强力驱动
友情链接:
    商业源码网蜀ICP备2023005044号
    网站模板库
    • 登录
    • 注册
    网站模板库
    • 首页
    • web前端工具►
      • HTML/JS转换工具
      • JS/HTML格式化工具
      • 字母/英文大小写转换工具
      • robots.txt文件生成工具
      • Js压缩/格式化工具
      • Css在线压缩工具_代码格式化
    • 关于我们►
      • 免责声明
      • 联系我们
      • 广告服务
      • 服务项目
      • 关于我们
      • 网站轮播
      • 公告
      • 成都优优科技专用
      • 按行业分类
    • web学院►
      • 服务器教程
      • 学习资料►
        • 基础书籍
        • 交互书籍
        • 入门教程
        • 特效分类
      • 案例分享
      • web资讯
    • 网页特效►
      • 图片特效
      • 导航特效
      • 滑动按钮
      • 表单特效
      • 文字特效
      • 弹窗特效
      • 其他特效
    • 织梦模板►
      • 科技/电子/数码/通信
      • 文化/艺术/广告/传媒
      • 装修/设计/家居/家具
      • 基建/施工/地产/物业
      • 餐饮/酒店/旅游/票务
      • 食品/果蔬/饮料/日用
      • 服饰/珠宝/礼品/玩具
      • 摄影/婚庆/家政/生活
      • 运动/健身/体育/器材
      • 学校/教育/培训/科研
      • 美容/保健/医院/医疗
      • 金融/财税/咨询/法律
      • 政府/组织/集团/协会
      • 汽车/物流/交通/搬运
      • 机械/设备/制造/仪器
      • 化工/环保/能源/材料
      • 农业/畜牧/养殖/宠物
      • 其他模版
      • IT/软件/信息/互联网
    • 手机模板►
      • 手机APP模板
      • 微信小程序模板
      • wap
    • 网站模板►
      • joomla模板
      • Drupal模板
      • z-blog模板
      • EyouCms模板
      • Bootstrap模板
      • 帝国cms模板
      • CmsEasy模板
      • MetInfo模板
      • 购物商城模板►
        • Shopify主题
        • PrestaShop主题
      • 后台模板
      • 纯HTML模板
      • ecshop模板
      • phpwind模板
      • pbootcms模板
      • phpcms模板
      • wordpress模板
      • discuz模板
    • 教程►
      • 织梦教程
      • Discuz教程
      • WordPress教程
      • Phpcms教程
      • Phpwind教程
      • ECShop教程
      • Joomla教程
      • Drupal教程
      • zblog教程
      • EyouCMS教程
      • 帝国cms教程
      • MetInfo教程
      • CmsEasy教程

      弹窗标题

      这是一条网站公告,可在后台开启或关闭,可自定义背景颜色,标题,内容,用户首次打开关闭后不再重复弹出,此处可使用html标签...