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

背景:我想减少在我的 Go 应用程序中使用 SQL 数据库时的响应时间。

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

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

:有没有办法使用Go标准库解决此问题,或者是否有一些替代的连接池库用于具有此功能的Go?

解决方法和已尝试

  1. 我尝试将 和 设置为非常高的值,但随后 SQL 服务器关闭了它们,在长时间的空闲时间后,我在第一次调用时得到了更高的延迟甚至错误。ConnMaxIdleTimeConnMaxLifetime

  2. 显然,我可以创建一个定期使用数据库的后台任务。但是,这似乎不是一个干净的解决方案。

  3. 我正在考虑将连接池库从另一种语言移植到Go。


largeQ
浏览 171回答 1
1回答

慕的地8271018

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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go