当前位置: 首页 > 知识库问答 >
问题:

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

丁高峯
2023-03-14

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

共有2个答案

皇甫德庸
2023-03-14

来自Gorm Doc

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

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

db.db()

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

sqlDBStats := db.DB().Stats()
漆雕彦
2023-03-14

gorm通常是sql.DB的包装器。

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

注意文档中的注释:

DB get*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()
}
 类似资料:
  • DBMetas() xorm支持获取表结构信息,通过调用 engine.DBMetas() 可以获取到数据库中所有的表,字段,索引的信息。 TableInfo() 根据传入的结构体指针及其对应的Tag,提取出模型对应的表结构信息。这里不是数据库当前的表结构信息,而是我们通过struct建模时希望数据库的表的结构信息

  • 问题内容: 我需要在应用程序中收集一些统计信息。我有一个用户表(tb_user),每当一个新用户访问该应用程序时,它将在该表中添加一条新记录,即每个用户一行。主要字段是 id 和 date_hour (用户首次访问该应用程序的时间戳)。 tb_user 我需要得到: 按日,周和月划分的平均用户数 例子: 每天:55.45 每周:XX.XX 月:XX.XX 编辑: 我最好的解决方案是: 但是,此解决

  • 问题内容: 我需要通过Java应用程序获取系统和硬件信息。 我对......感兴趣: 操作系统细节; 处理器数量,名称,处理器负载(以百分比为单位); 内存状态(总计/空闲); 每个操作系统的进程(线程)计数和CPU /内存使用情况; 网络统计(每个接口); 有没有可以做到这一点的Java库? 问题答案: 使用Java获取操作系统级别的系统信息将使您正确地入门。 查找操作系统信息

  • 问题内容: 有没有一种方法可以通过Hibernate 3.2 API获得一些基础数据库版本的信息?我在这里和javadoc中都找不到相关的位。 问题答案: 获取数据库引擎的版本是特定于实现的。这意味着没有获取版本的共享方法,因此Hibernate不能真正提供API,因为它没有绑定到任何特定的RDBMS。例如,以下是通过一些著名的RDBMS使用SELECT语句获取版本的几种不同方法: Oracle

  • 我创建了一个名为的类来从firebase数据库中获取所有用户数据。下面是我用来获取firebase数据(用户名)的方法。 而firebase链接也没有问题。它还提供了用户名。 当我用一些虚拟的预定义字符串数据替换username时,这段代码就可以工作了。但是当我添加用户名时,它会给我以下错误。

  • 问题内容: 我的网站上有一个MySQL数据库,我想知道如何通过PHP从表中的以下各列获取XML输出: 你做了 国家 问题答案: XMLWriter的示例。 输出: