[FAQ] gormV2 Too many connections

gormV2 中不再有v1的 db.Close() 方法。

取而代之的 close 方式是如下:

sqlDB, err := DB.DB()
sqlDB.Close()

https://github.com/go-gorm/gorm/issues/3145

另外,gormV2 内部维护了连接池,设置连接数量,打开的连接全局使用即可。

http://v2.gorm.io/docs/generic_interface.html

// 获取通用数据库对象 sql.DB ,然后使用其提供的功能
sqlDB, err := db.DB()

// SetMaxIdleConns 用于设置连接池中空闲连接的最大数量。
sqlDB.SetMaxIdleConns(10)

// SetMaxOpenConns 设置打开数据库连接的最大数量。
sqlDB.SetMaxOpenConns(100)

// SetConnMaxLifetime 设置了连接可复用的最大时间。
sqlDB.SetConnMaxLifetime(time.Hour)

https://github.com/go-gorm/gorm/issues/3834

Link:https://www.cnblogs.com/farwish/p/14391504.html

原文地址:https://www.cnblogs.com/farwish/p/14391504.html