我有一个列中有大量 BLOB 数据的表。我正在编写一个实用程序来将数据转储到文件系统。但是在转储之前,我需要检查磁盘上是否有必要的空间来导出整个表中的所有 blob 字段。
请建议一种有效的方法来获取表中所有 blob 字段的大小。
您可以使用 MySQL 功能OCTET_LENGTH(your_column_name)
。有关更多详细信息,请参见此处。
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 在磁盘上的实际分配大小。