我在一个列中有一个包含大量BLOB数据的表。我正在编写一个实用程序来将数据转储到文件系统。但在转储之前,我需要检查磁盘上是否有必要的空间来导出整个表中的所有blob字段。
请建议一种有效的方法来获取表格中所有blob字段的大小。
答案 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的实际分配大小。