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

Get database statistics via GORM

我正在从我的项目中的 database/sql 迁移到 jinzhu/gorm。以前,我用 Stats 方法捕获我的数据库情况。我想知道如何在 GORM 中实现它?我在官方文档中什么也没找到。

gorm(通常)是 sql.DB.

的包装器

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

注意文档中的注释:

DB get *sql.DB from current connection If the underlying database connection is not a *sql.DB, returns 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()
}

来自 Gorm Doc

Get generic database interface *sql.DB from *gorm.DB connection

//Get generic database object *sql.DB to use its functions

db.DB()

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

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