スケーラブルデータベースサーバ HiRDB Version 8 解説(UNIX(R)用)

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

3.4.3 インデクスページスプリット

空き領域がないインデクスページにキーが追加されると,HiRDBはインデクスページの空き領域を確保します。空き領域の確保方法はインデクスページのインデクス情報を分割して,後の半分を新しいページに移します。この処理をインデクスページスプリットといいます。インデクスページスプリットには,インデクス情報を均等に分割する方法と不均等に分割する方法(アンバランスインデクススプリット)があります。

<この項の構成>
(1) 均等に分割するインデクスページスプリット
(2) アンバランスインデクススプリット

(1) 均等に分割するインデクスページスプリット

均等に分割するインデクスページスプリットの例を次の図に示します。

図3-28 均等に分割するインデクスページスプリットの例

[図データ]

〔説明〕
インデクスページaにキー5が追加されたため,インデクスページスプリットが発生し,キー5とその後の6が新しいインデクスページbに移り,均等に分割されています。

(2) アンバランスインデクススプリット

連続したキー値を追加すると,インデクスページのデータ格納効率が下がります。このような場合,インデクスページのインデクス情報を均等に分割しないで,不均等に分割できます。これをアンバランスインデクススプリットといいます。

アンバランスインデクススプリットの場合,インデクスページのインデクス情報を分割する比率をキー値の追加位置で決定します。追加位置がインデクスページから見て前半部分であれば,以降,前半部分にキーが追加されると予測します。このため,追加するキー値より一つ大きいキー値を分割位置として,前半部分を左側ページに格納します。追加位置が後半部分であれば,以降,後半部分にキーが追加されると予測します。このため,追加位置を分割位置として,後半部分を右側ページに格納します。インデクスページの後半部分にキーを追加した場合のアンバランスインデクススプリットの例を次の図に示します。

図3-29 アンバランスインデクススプリットの例

[図データ]

〔説明〕
インデクスページaにキー7が追加され,追加位置が後半であるため,キー7とそれより後のキー8が,右側のインデクスページbに移っています。

適用基準
次に示すような場合にアンバランスインデクススプリットをすると,データの格納効率を向上できます。また,インデクスページスプリットの発生回数の削減ができます。
  • キーの重複度に偏りがないインデクス
  • キー長がほぼ均一であるインデクス
  • 連続した中間キー値を頻繁に追加するインデクス

アンバランスインデクススプリットの指定方法
アンバランスインデクススプリットをするには,定義系SQLのCREATE INDEX又はCREATE TABLEUNBALANCED SPLITオプションを指定します。アンバランスインデクススプリットについては,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。