36

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

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

4

4 回答 4

48

您可以使用 MySQL 功能OCTET_LENGTH(your_column_name)。有关更多详细信息,请参见此处

于 2012-05-18T07:58:42.273 回答
26
select sum(length(blob_column)) as total_size 
from your_table
于 2012-05-18T07:58:30.343 回答
4
select sum(length(blob_column_name)) from desired_tablename;
于 2013-06-08T09:53:57.207 回答
3

可悲的是,这充其量是特定于数据库的。

要获取 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 在磁盘上的实际分配大小。

于 2016-01-14T07:56:56.887 回答