1

是否可以获得给定结果集使用的磁盘空间?假设我想从用户 id = X 的表中进行选择,以计算用户的数据库磁盘使用情况?理想情况下,我想以编程方式计算出任何结果集的磁盘使用情况。

4

3 回答 3

1

如果所有数据都来自单个表,则可以从数据类型或行统计信息中计算出来。

数据类型: http ://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

行统计: http ://dev.mysql.com/doc/refman/5.0/en/tables-table.html

另一种选择可能是使用该GROUP_CONCAT()函数创建一个与数据文本形式大小相同的字符串,并将其设为LENGTH().

于 2012-07-03T03:20:13.733 回答
1

我实际上对数据库中的大小感兴趣,而不是作为 Java 中的对象。

那么肯定没有办法获得这些信息,除非供应商的数据库实现以某种方式公开它。(而且我还没有听说过任何供应商数据库。)

您可以做的最好的事情是根据对供应商数据库如何表示磁盘上的数据的深入了解进行估计。鉴于典型数据库提供的各种调优选项,仅获得可靠的估计将是大量工作需要实施。

于 2012-07-03T03:29:59.657 回答
0

您可以使用Instrumentation来执行此操作。

于 2012-07-03T03:10:26.723 回答