首页 > 解决方案 > 关闭 sql db 连接的正确方法是什么?

问题描述

我在 Go 中使用 sql,使用mysql 驱动程序database/sql.

在阅读它时,我发现这个驱动程序处理与连接池本身和数据库相关的事情,err := db.Open("conn string")返回连接池而不是单个连接,当我们使用时db.Query("some query"),它实际上从连接池中选择一个空闲连接(如果池中没有连接是free 它会打开一个新的)并使用它。

如果我的上述理解有误,请纠正我。

现在我的问题是,当我打电话时会发生什么db.Close()

  1. 它会关闭连接池中的所有连接吗?
  2. 即使它们被传递给不同的 goroutine 并在那里使用,它会关闭吗?

标签: mysqldatabasego

解决方案


推荐阅读