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

Mysql 计算表中BLOB列的总数据大小,mysql,blob,Mysql,Blob,我有一个在列中包含大量BLOB数据的表。我正在编写一个实用程序来将数据转储到文件系统。但是在转储之前,我需要检查磁盘上是否有必要的空间来导出整个表中的所有blob字段 select sum(length(blob_column)) as total_size from your_table 请建议一种有效的方法来获取表中所有blob字段的大小。您可以使用MySQL函数OCTET\u LENGTH(您的列名称)。请参阅以了解更多详细信息。遗憾的是,这最多是特定于数据库的 select sum(

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

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

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

您可以使用MySQL函数
OCTET\u LENGTH(您的列名称)
。请参阅以了解更多详细信息。

遗憾的是,这最多是特定于数据库的

select sum(length(blob_column)) as total_size 
from your_table
select sum(length(blob_column_name)) from desired_tablename;
要获得Oracle中包含BLOB的表的总大小,我使用以下方法:

遗憾的是,这在DB2中不起作用,我仍然需要找到一个替代方案

简单的

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

不是正确的查询,因为无法根据对存储在blob列中的blob的引用正确估计blob大小。您必须从blob存储库中获取blob在磁盘上的实际分配大小。

谢谢您的回复。上述查询指示的大小小于磁盘上转储文件的总大小。知道原因是什么吗?@jatinpreet:我猜这是因为文件系统中的文件集群。例如,根据您的文件系统,文件将以4KB的块保存。那可能会把事情搞定。但这只是猜测。八位组长度()是长度()的同义词