GO 数据库关闭时机

比如在MVC模式中,C通过M访问从数据库获取信息,M会自动连接数据库, 但是关闭数据库在什么时机好?M不能自动关闭,因为C可能会再访问M从数据库获取其他的信息, 但是如果由控制器来关闭的话显得很不优雅~,有什么好办法吗?

共 7 个回复


jimmykuu

建议放在C中来做,C的功能就是控制的,打开后defer关闭。

# 0

captain

感觉不太好,如果每个函数都要打开关闭写一遍。。

# 1

luckymouse

除非整个程序彻底不用数据库了 ,不然关什么

The sql package creates and frees connections automatically; it also maintains a free pool of idle connections. If the database has a concept of per-connection state, such state can only be reliably observed within a transaction. Once DB.Begin is called, the returned Tx is bound to a single connection. Once Commit or Rollback is called on the transaction, that transaction's connection is returned to DB's idle connection pool. The pool size can be controlled with SetMaxIdleConns.

# 2

gzw13999

压根不用关,每次开关重建套接字速度弱爆了。 而且数据驱动中实现了池功能。

# 3

dxhdxh2k

有意思的话题。 希望大牛们提出意见与建议.

# 4

16779242

@luckymouse 人家可没说是关系型数据库……

# 5

seefan

用完即关,不管你是不是用连接池,这样最安全。

# 6