以下是使用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()控制同时打开的最大连接数。当需要处理大量并发请求时,这两个参数可以帮助我们更好地管理连接资源。

注意:连接池的使用可能会带来一些额外的开销,因此应该根据实际需要进行权衡和优化。