通过GORM获取数据库统计信息

时间:2020-05-27 13:48:27

标签: go go-gorm

我正在从项目中的database/sql迁移到jinzhu/gorm。以前,我使用Stats方法捕获了数据库情况。我想知道如何在GORM中实现这一目标?我没有在官方文档中找到任何东西。

2 个答案:

答案 0 :(得分:1)

gorm(通常)是sql.DB的包装。

您可以通过调用DB.DB()来访问基础*sql.DB对象。然后,您可以访问标准库中的任何方法,包括DB.Stats()

请注意文档中的注释:

DB从当前连接中获取*sql.DB如果基础数据库 连接不是* sql.DB,返回nil

例如:

// db is a *gorm.DB
db, err := gorm.Open("mysql", connectionString)
...
// sqlDB is a *sql.DB
sqlDB := db.DB()
if sqlDB != nil {
  // Call to the standard library's sql.DB.Stats
  stats := sqlDB.Stats()
}

答案 1 :(得分:1)

来自Gorm Doc

从* gorm.DB连接获取通用数据库接口* sql.DB

//获取通用数据库对象*sql.DB以使用其功能

db.DB()

使用db.DB()可以获得*sql.DB并使用函数.Stats(),其中db*gorm.DB连接

sqlDBStats := db.DB().Stats()