ノンストップデータベース HiRDB Version 9 解説(Windows(R)用)
HiRDBが表にデータを格納するとき,データを圧縮して格納できます。これをデータ圧縮機能といいます。データの圧縮は列単位に指定でき,圧縮を指定した列を圧縮列といい,圧縮列がある表を圧縮表といいます。圧縮表については,マニュアル「HiRDB Version 9 システム導入・設計ガイド」を参照してください。
HiRDBがデータを圧縮することで,次のメリットがあります。
データ圧縮の概要を次の図に示します。
図3-21 データ圧縮の概要
画像,音声など,容量が大きい可変長バイナリデータを含む表を圧縮表にすることをお勧めします。ただし,圧縮表の場合,圧縮処理や伸張処理によるオーバヘッドが掛かります。このため,性能よりも格納効率を重視するシステムで使用してください。
データ圧縮時に使用する圧縮ライブラリはzlibです。HiRDBは,zlibを使用して表定義時に指定した圧縮分割サイズ(省略値:MIN(32,000バイト,圧縮列の定義長))ごとに圧縮します。このとき,圧縮前後のデータの情報を管理するヘッダ領域(8バイト)を圧縮分割サイズごとに追加します(zlibが圧縮データに付与するヘッダ領域とは別に追加します)。
ただし,圧縮前後のデータ長が同じ,又は圧縮後のデータ長の方が長くなる場合,HiRDBはデータを圧縮しないで格納します。このため,ヘッダ領域の付与によって,圧縮後のデータサイズが圧縮前よりも大きくなることがあります。圧縮前後のデータを次の図に示します。
図3-22 圧縮前後のデータ
定義系SQLのCREATE TABLEの列定義で圧縮指定(COMPRESSED)をします。必要に応じて,圧縮分割サイズも指定します。ただし,圧縮指定には次の条件があります。
All Rights Reserved. Copyright (C) 2010, 2013, Hitachi, Ltd.