【发布时间】:2012-05-25 19:15:34
【问题描述】:
我有一个表,其中有一列中有大量 BLOB 数据。我正在编写一个实用程序来将数据转储到文件系统。但是在转储之前,我需要检查磁盘上是否有必要的空间来导出整个表中的所有 blob 字段。
请建议一种有效的方法来获取表中所有 blob 字段的大小。
【问题讨论】:
我有一个表,其中有一列中有大量 BLOB 数据。我正在编写一个实用程序来将数据转储到文件系统。但是在转储之前,我需要检查磁盘上是否有必要的空间来导出整个表中的所有 blob 字段。
请建议一种有效的方法来获取表中所有 blob 字段的大小。
【问题讨论】:
您可以使用 MySQL 函数OCTET_LENGTH(your_column_name)。详情请见here。
【讨论】:
select sum(length(blob_column)) as total_size
from your_table
【讨论】:
select sum(length(blob_column_name)) from desired_tablename;
【讨论】:
遗憾的是,这充其量是特定于数据库的。
要在 Oracle 中获取包含 blob 的表的总大小,我使用以下命令: https://blog.voina.org/?p=374
遗憾的是,这在 DB2 中不起作用,我仍然需要寻找替代方案。
简单的
select sum(length(blob_column)) as total_size
from your_table
不是一个正确的查询,因为它不会根据对存储在 blob 列中的 blob 的引用正确估计 blob 大小。您必须从 blob 存储库中获取 blob 在磁盘上的实际分配大小。
【讨论】: