首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL池中设置最小空闲连接

在SQL池中设置最小空闲连接
EN

Stack Overflow用户
提问于 2021-08-04 16:55:42
回答 1查看 859关注 0票数 1

背景:在Go应用程序中使用数据库时,我希望减少响应时间。

Golang提供了一个带有连接池的SQL包。它包括以下配置选项:

但是,没有什么比SetMinIdleConns更能确保在请求传入时总是有一些可以使用的开放连接。因此,我的应用程序在加载下有很好的响应时间,但是在一些空闲时间后的第一个请求总是有一些延迟,因为它需要打开到数据库的新连接。

问题:有什么方法可以用Go标准库来解决这个问题,还是有其他连接池库可以使用这个特性来解决这个问题呢?

解决方案,并且已经尝试过

  1. 我尝试将ConnMaxIdleTimeConnMaxLifetime设置为非常高的值,但随后server关闭了它们,在长时间空闲后的第一次调用中会出现更高的延迟甚至错误。
  2. 显然,我可以创建一个定期使用数据库的后台任务。然而,这似乎不是一个干净的解决方案。
  3. 我正在考虑从另一种语言移植一个连接池库。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-28 09:20:44

pgx/pgx池库为Postgres提供了一个连接池,它允许配置最小连接数:

代码语言:javascript
复制
    connConf, err := pgxpool.ParseConfig(connStr)
    // ... (error handling)
    connConf.MaxConns = 50
    // Set minimum number of connections:
    connConf.MinConns = 10
    pool, err := pgxpool.ConnectConfig(context.TODO(), connConf)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68655261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档