是否可以获取给定结果集使用的磁盘空间?假设我想从用户id = X的表中进行选择,以便为用户计算数据库磁盘使用情况?理想情况下,我想以编程方式确定任何结果集的磁盘使用情况。
答案 0 :(得分: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()
。
答案 1 :(得分:1)
我实际上对数据库中的大小感兴趣,而不是Java中的对象。
然后绝对没有办法获取此信息,除非供应商的数据库实现以某种方式暴露它。 (我还没有听说过任何供应商数据库。)
您可以做的最好的事情是根据对供应商数据库如何表示磁盘数据的深入了解进行估算。考虑到典型数据库提供的各种调整选项,只需获得可靠的估计就可以实现很多工作。
答案 2 :(得分:0)
您可以使用Instrumentation来执行此操作。