为了确保数据一致性,GORM 会在事务里执行写入操作(创建、更新、删除)。如果没有这方面的要求,您可以在初始化时禁用它,这将获得大约 30%+ 性能提升。
// 全局禁用
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{
SkipDefaultTransaction: true,
})
// 持续会话模式
tx := db.Session(&Session{SkipDefaultTransaction: true})
tx.First(&user, 1)
tx.Find(&users)
tx.Model(&user).Update("Age", 18)
事务 | GORM - The fantastic ORM library for Golang, aims to be developer friendly.https://gorm.io/zh_CN/docs/transactions.html看我们之前创建的连接数据库的models,core.go:
/models/core.go:
package models
//这个操作是目的连接数据库,以及定义操作的是哪个库内的表
import (
// 我们使用了go.mod来管理包
"fmt"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
// ----如果要全局使用数据库,需要先定义