以下是使用GORM连接池的示例代码:
import (
"gorm.io/gorm"
"gorm.io/driver/mysql"
)
func main() {
// 创建数据库连接
dsn := "user:password@tcp(127.0.0.1:3306)/database_name?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
// 使用连接池
sqlDB, err := db.DB()
if err != nil {
panic("failed to get database instance")
}
defer sqlDB.Close()
// 设置最大连接数和最大空闲连接数
sqlDB.SetMaxIdleConns(10)
sqlDB.SetMaxOpenConns(100)
// ...
}
在这个示例中,我们首先创建了一个GORM数据库连接。然后,我们使用db.DB()
方法获取到底层的*sql.DB
实例,并通过调用SetMaxIdleConns()
和SetMaxOpenConns()
设置连接池的相关参数。
SetMaxIdleConns()
控制连接池中最大的空闲连接数,SetMaxOpenConns()
控制同时打开的最大连接数。当需要处理大量并发请求时,这两个参数可以帮助我们更好地管理连接资源。
注意:连接池的使用可能会带来一些额外的开销,因此应该根据实际需要进行权衡和优化。