gorm链接mysql的初始化配置和连接池的使用

1.  mysql的初始化配置

1
2
dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?%s", user, passwd, host, port, db, other)
    //db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})// MySQl 驱动程序提供了 一些高级配置 可以在初始化过程中使用<br>db, err := gorm.Open(mysql.New(mysql.Config{<br>   DSN:                       dsn,<br>   DefaultStringSize:         256,   // string 类型字段的默认长度<br>   DisableDatetimePrecision:  true,  // 禁用 datetime 精度,MySQL 5.6 之前的数据库不支持<br>   DontSupportRenameIndex:    true,  // 重命名索引时采用删除并新建的方式,MySQL 5.7 之前的数据库和 MariaDB 不支持重命名索引<br>   DontSupportRenameColumn:   true,  // 用 `change` 重命名列,MySQL 8 之前的数据库和 MariaDB 不支持重命名列<br>   SkipInitializeWithVersion: false, // 根据当前 MySQL 版本自动配置<br>}), &gorm.Config{<br>   // 使用CreateBatchSize 选项初始化 GORM 时,所有的创建& 关联 INSERT 都将遵循该选项<br>   CreateBatchSize: 1000,<br>   // 全局模式:执行任何 SQL 时都创建并缓存预编译语句,可以提高后续的调用速度<br>   PrepareStmt: true,<br>   // 注意 QueryFields 模式会根据当前 model 的所有字段名称进行 select。<br>   //QueryFields: true,<br>})

  

2.  连接池的使用,GORM 使用 database/sql 维护连接池

1
2
sqlDb, _ := db.DB()
    defer sqlDb.Close() // 关闭链接// 对于中小型 web 应用程序,我通常使用以下设置作为起点,然后根据负载测试结果和实际吞吐量级别进行优化。<br>// SetMaxIdleConns: 设置空闲连接池中链接的最大数量<br>sqlDb.SetMaxIdleConns(25)<br>// SetMaxOpenConns: 设置打开数据库链接的最大数量<br>sqlDb.SetMaxOpenConns(25)<br>// SetConnMaxLifetime: 设置链接可复用的最大时间<br>sqlDb.SetConnMaxLifetime(5 * time.Minute)

  

 

posted @   专职  阅读(2574)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示