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

悲しいことに、これはせいぜいDB固有です。

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 に答える