【问题标题】:How to find disk usage of a result set?如何查找结果集的磁盘使用情况?
【发布时间】:2012-07-03 11:19:19
【问题描述】:

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

【问题讨论】:

    标签: java mysql database spring jdbc


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      数据类型: 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()

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 我实际上对数据库中的大小感兴趣,而不是作为 Java 中的对象。
        猜你喜欢
        • 2021-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-30
        • 2016-05-28
        • 1970-01-01
        相关资源
        最近更新 更多