golang mysql库连接池有什么作用


本篇内容主要讲解“golang mysql库连接池有什么作用”,感兴趣的朋友不妨 香港云主机来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“golang mysql库连接池有什么作用”吧!golang的协程是好用,但是有时候瓶颈并不在语言上,而是在后面的数据源上面,例如我们常见的mysql,redis等,当一个后端服务很多请求的时候,语言是能hold得住,但是 mysql产生错误,比如 too many connection, too many time_wait 等等这些,今天我们就分析一下怎么解决这种问题请查看main.go, halokid (有帮忙的话请start或者follow一下哦,谢谢)只执行ini函数, 检查mysql的进程显示为(原有的mysql是没有进程在处理的)没执行前执行后可见执行 db.Ping() 之后, process多了一个 Sleep 的连接,就是放了一个连接进 连接池运行两句之后, 连接池并没有改变, 可见上面的逻辑是在 数据库处理逻辑真实执行的时候才生效的执行协程查询执行完在等待协程执行完之后我们发现最大连接控制在了10个, 执行完之后还有5个连接在保持着这里有一个很重要的问题,就是连接池的过期时间0x4 深入分析 我们把 db.SetConnMaxLifetime(15 * time.Second), 连接池连接的生命周期设置为 15秒, 我们会发现15秒之后,连接池的连接都会断掉30秒之后再次查询数据库这个时候发现程序会重新发起新的db连接mysql服务端的连接生命周期还有一种请况就是,我们的程序的连接池生命周期设置大于mysql服务器的生命周期设置, 这个时候就会有一种请况,假如我们重复用连接池的连接,会产生 连接错误的问题,解决方法有两种:可以在程序里面设置生命周期时间小于mysql服务端的连接生命周期时间就可以了增加程序的重连(keepalive)机制,就是定时发送一个连接包服务端 关于第2点我们我们以后可以再发散来说,一般如果允许的话,用第一种方式即可。到此,相信大家对“golang mysql库连接池有什么作用”有了更深的了解,不妨来实际操作一番吧!这里是开发云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: 笔记本电脑如何使用磁盘扫描功能

这篇文章给大家分享的是有关笔记本电脑如何使用磁盘扫描功能的内容。 香港云主机小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、双击桌面上的“计算机”图标,打开“计算机”窗口;如图所示:2、右击要进行磁盘扫描的驱动器图标,如D盘,在弹出的快捷…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/29 12:02
Next 07/29 12:02

相关推荐