计算表中BLOB列的总数据大小

时间:2012-05-18 07:54:32

标签: mysql blob

我在一个列中有一个包含大量BLOB数据的表。我正在编写一个实用程序来将数据转储到文件系统。但在转储之前,我需要检查磁盘上是否有必要的空间来导出整个表中的所有blob字段。

请建议一种有效的方法来获取表格中所有blob字段的大小。

4 个答案:

答案 0 :(得分:39)

您可以使用MySQL函数OCTET_LENGTH(your_column_name)。有关详细信息,请参阅here

答案 1 :(得分:23)

select sum(length(blob_column)) as total_size 
from your_table

答案 2 :(得分:3)

select sum(length(blob_column_name)) from desired_tablename;

答案 3 :(得分:2)

可悲的是,这最好是数据库特定的。

要在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的实际分配大小。