gorm鏈接mysql的初始化配置和連接池的使用


1.  mysql的初始化配置

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 驅動程序提供了 一些高級配置 可以在初始化過程中使用
db, err := gorm.Open(mysql.New(mysql.Config{
DSN: dsn,
DefaultStringSize: 256, // string 類型字段的默認長度
DisableDatetimePrecision: true, // 禁用 datetime 精度,MySQL 5.6 之前的數據庫不支持
DontSupportRenameIndex: true, // 重命名索引時采用刪除並新建的方式,MySQL 5.7 之前的數據庫和 MariaDB 不支持重命名索引
DontSupportRenameColumn: true, // 用 `change` 重命名列,MySQL 8 之前的數據庫和 MariaDB 不支持重命名列
SkipInitializeWithVersion: false, // 根據當前 MySQL 版本自動配置
}), &gorm.Config{
// 使用CreateBatchSize 選項初始化 GORM 時,所有的創建& 關聯 INSERT 都將遵循該選項
CreateBatchSize: 1000,
// 全局模式:執行任何 SQL 時都創建並緩存預編譯語句,可以提高后續的調用速度
PrepareStmt: true,
// 注意 QueryFields 模式會根據當前 model 的所有字段名稱進行 select。
//QueryFields: true,
})

  

2.  連接池的使用,GORM 使用 database/sql 維護連接池

sqlDb, _ := db.DB()
	defer sqlDb.Close() // 關閉鏈接
// 對於中小型 web 應用程序,我通常使用以下設置作為起點,然后根據負載測試結果和實際吞吐量級別進行優化。
// SetMaxIdleConns: 設置空閑連接池中鏈接的最大數量
sqlDb.SetMaxIdleConns(25)
// SetMaxOpenConns: 設置打開數據庫鏈接的最大數量
sqlDb.SetMaxOpenConns(25)
// SetConnMaxLifetime: 設置鏈接可復用的最大時間
sqlDb.SetConnMaxLifetime(5 * time.Minute)

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM