gpt4 book ai didi

java - Java获取MYSQL数据库大小

转载 作者:搜寻专家 更新时间:2023-11-01 02:43:41 26 4
gpt4 key购买 nike

我的 MYSQL-Table 有 3 个表。

我无法获得 given examples工作。

Java 中,使用 java.sql.*,我想知道我的整个数据库还剩下多少空间,因为空间非常有限。

这是我的方法:

// this.conn = DriverManager.getConnection("jdbc:mysql://......");

public long remainingSpace() {
String sql = "SELECT table_schema AS \"Database\", "
+ "ROUND(SUM(data_length + index_length) / 1024, 2) AS \"Size (KB)\" "
+ "FROM information_schema.TABLES GROUP BY table_schema;";
ResultSet rs;
PreparedStatement prpSttm = this.conn.prepareStatement(sql);
rs = prpSttm.executeQuery();
rs.next();
long remainingSpace = rs.getInt("Size (KB)");
return remainingSpace;
}

这将返回 9 (KB)。

phpMyAdmin 相反告诉我在我的一个表中有 64 KiB 数据: Table size according to phpMyAdmin

如何在 Java 中获得正确的尺寸?

最佳答案

您只是显示 ResultSet 返回的第一个数据库的大小,您的 DBMS 中可能有更多数据库(有一些默认系统数据库)。您应该使用 while 循环。

while (rs.next()) {
System.out.println(rs.getString("Database") " | " + rs.getString("Size (KB)"));
}

*根据我的经验,~9KB 通常是默认 information_schema 数据库的大小。

**由于此查询按字母顺序返回数据库,我猜您的数据库名称以字母 >=i 开头;因此,令人惊讶的是,如果您使用以“a”开头的名称重命名数据库,那么您的代码将正常工作 :) :)

关于java - Java获取MYSQL数据库大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27668023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com