go - 我应该在哪里关闭 sql.DB?

标签 go

根据godoc :

It is rare to Close a DB, as the DB handle is meant to be long-lived and shared between many goroutines.

除了在 main 函数中调用它 defer db.Close() 之外,这个方法是否有任何用例?

最佳答案

我从不关闭数据库。在 main 中推迟它可能不会有什么坏处……但它也无济于事。 main 的结尾是程序的结尾,如果 main 结束,操作系统会进行清理。


编辑:

So why we need it in public API of the database/sql package?

如果您不打算再次使用数据库,则关闭数据库很有用。它会执行所有将在程序终止时完成的清理工作,但允许程序继续运行。

关于go - 我应该在哪里关闭 sql.DB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25858663/

相关文章:

go - 当永远不会评估消息时,应该使用哪种 channel 类型?

go - 检查网络连接

go - golang中函数范围的模拟

Go Channels 行为看起来不一致

go - 我想获得一个数据 session 和标题,但是从数据库中检索数据时它在循环之外

go - 如何确保向 channel 发送消息的顺序正确

http - 我应该在 golang 中直接使用 ServeMux 还是 http

logging - 是否可以在不丢失行号前缀的情况下包装 log.Logger 函数?

Goland显示os.Remove()无法解决?

go - 如何在 for 循环初始化中声明 uint8,因为在 for 循环初始化中不允许使用 var