スケーラブルデータベースサーバ HiRDB Version 8 システム導入・設計ガイド(UNIX(R)用)

[目次][索引][前へ][次へ]

13.12.3 BLOB型とBINARY型の使い分け

バイナリデータの運用方法によってお勧めするデータ型を次の表に示します。

表13-4 バイナリデータの運用による推奨データ型

バイナリデータの運用方法 推奨するデータ型の
平均データサイズ
説明
32,000バイト以下の場合 32,000バイトより大きい場合
射影列にバイナリデータ列を指定する頻度 高い BINARY BLOB
  • 32,000バイト以下の場合,BINARY型の方がブロック転送もでき,行全体のデータが近くに集まって配置されるので,性能的に優位です。
  • 32,000バイトより大きい場合,BLOB型の方が長大データに特化した内部メモリ削減などの処理をするので,性能的に優位です。
低い BLOB BLOB BLOB型の方がBINARY型より基本行のデータサイズが小さいので,データ件数が多くなればBLOB型が性能的に優位です。ただし,BINARY型以外の列にインデクスを定義してインデクススキャンにすることでBINARY型とBLOB型の性能差はなくなります。また,インデクススキャンにすることを推奨しますが,セグメントサイズを大きくすることでも性能差を小さくできます。
SQL記述の柔軟性 BINARY 同等 32,000バイト以下の場合,BINARY型のSQL記述はインデクス定義を除いて,ほぼVARCHARと同等の記述ができます。そのため,BLOB型よりSQL記述範囲が広がります。詳細は,マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。
データ格納効率 BINARY 格納効率はBINARY型が優位です。ただし,8キロバイトのバウンダリが無視できるような長大データサイズになると余り差はありません。
追加更新を頻繁にする場合 BLOB 連結演算するデータサイズが大きいほどBLOB型が性能的に優位です。
部分抽出を頻繁にする場合 同等 BLOB BINARY型の格納済みデータサイズが大きいデータに対して部分抽出をすると非常に性能が悪くなります。さらに,部分抽出回数を多くすると,性能は劣化します。大きなデータに対して部分抽出を頻繁にする必要がある場合には,BLOB型をお勧めします。
運用性を重視する場合 BINARY BLOB型はユーザLOB用RDエリアをバックアップするなどの特別な運用が必要になります。
上記使用方法で判断できない場合,又は将来的に方針変更の可能性があり,判断できない場合 BINARY BLOB 32,000バイトより大きいデータを扱う場合はBLOB型をお勧めします。比較的データサイズが小さい場合はBINARY型をお勧めします。

注※
データサイズがページサイズに近い大きさで分岐しない場合,BINARY型で大量のテーブルスキャンをすると,BLOB型に比べて非常に性能が悪くなります。これを防ぐため,テーブルスキャンからインデクススキャンへ変更してください。また,インデクススキャンにすることを推奨しますが,セグメントサイズを大きくすることでも性能差を小さくできます。