栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Go中将单个Postgres DB连接重用于行插入?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Go中将单个Postgres DB连接重用于行插入?

首先,

*sql.DB
不是连接而是连接池,它将打开所需数量的连接以及postgres服务器允许的数量。仅当池中没有空闲的可用连接时,它才会打开新连接。


因此,问题在于数据库打开的连接没有被释放,为什么?因为您使用时

QueryRow
未调用
Scan
返回
*Row
值。

引擎盖下

*Row
有一个
*Rows
实例,该实例可以访问其自己的连接,并且该连接在
Scan
被调用时会自动释放。如果
Scan
未调用,则连接不会释放,这会导致
DB
池在下一次调用时打开新连接
QueryRow
。因此,由于您不释放任何连接,因此请
DB
继续打开新的连接,直到达到postgres设置所指定的限制,然后下一次调用
QueryRow
挂起,因为它等待连接变为空闲状态。

因此,

Exec
如果您不关心输出,则需要使用,或者需要调用
Scan
return
*Row



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/436143.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号