为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
largeQ 2022-09-19 10:48:09
背景:我想减少在我的 Go 应用程序中使用 SQL 数据库时的响应时间。高浪提供了一个带有连接池的 SQL 包。它包括以下配置选项:func (db *DB) SetConnMaxIdleTime(d time.持续时间)func (db *DB) SetConnMaxLifetime(d time.持续时间)func (db *DB) SetMaxIdleConns(n int)func (db *DB) SetMaxOpenConns(n int)但是,没有什么比确保在请求传入时始终可以使用一些打开的连接更好的了。因此,我的应用程序在负载下具有良好的响应时间,但是在一些空闲时间后的第一个请求总是有一些延迟,因为它需要打开与数据库的新连接。SetMinIdleConns问:有没有办法使用Go标准库解决此问题,或者是否有一些替代的连接池库用于具有此功能的Go?解决方法和已尝试:我尝试将 和 设置为非常高的值,但随后 SQL 服务器关闭了它们,在长时间的空闲时间后,我在第一次调用时得到了更高的延迟甚至错误。ConnMaxIdleTimeConnMaxLifetime显然,我可以创建一个定期使用数据库的后台任务。但是,这似乎不是一个干净的解决方案。我正在考虑将连接池库从另一种语言移植到Go。
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

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


    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)


查看完整回答
反对 回复 2022-09-19
  • 1 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号