背景:我想减少在我的 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 服务器关闭了它们,在长时间的空闲时间后,我在第一次调用时得到了更高的延迟甚至错误。ConnMaxIdleTime
ConnMaxLifetime
显然,我可以创建一个定期使用数据库的后台任务。但是,这似乎不是一个干净的解决方案。
我正在考虑将连接池库从另一种语言移植到Go。
慕的地8271018
相关分类