使用以 Go 上下文作为参数的 SQL 函数是一个好习惯吗?

tar*_*raf 4 sql go

我在 Golang 中有 RESTFUL Web 服务,我正在使用它的 SQL 数据库驱动程序。我的问题是我应该使用带有上下文作为参数的 SQL 函数还是不使用它?例如,有QueryContextandQuery方法。

实际上我确实知道 Go 中的上下文是什么,我只是不知道为什么我应该将它发送到数据库方法。

pet*_*erm 8

Context感知方法允许可取消的查询执行。

处理取消的方式是特定于驱动程序的,但即使驱动程序不直接支持获取上下文,在关闭上下文时也应该关闭任何使用上下文启动的查询。

这应该有助于解决潜在的连接泄漏和查询特定超时问题。