インデックスサイズの見積り式について、説明します。
FUJITSU Enterprise Postgresは、B-tree、Hash、GiST、GIN、SP-GiST、VCIの6種類のインデックスを提供しています。CREATE INDEX文でインデックスの種類を指定しない場合は、B-treeインデックスを生成します。
ここでは、B-treeインデックスの見積り方法について説明します。VCIの見積り方法については、“E.7 VCIのディスク容量の見積り”を参照してください。
B-treeインデックスは8キロバイトの固定サイズのページとして保存されます。ページの種類はmetaページ、rootページ、leafページ、internalページ、deletedページ、emptyページがあります。これらのうち、通常leafページが大部分を占めるので、leafページだけを計算します。
項目 | 見積り式(バイト) |
---|---|
(1)エントリ長 | 8(注1) + キーデータ長(注2) 注1) エントリヘッダ部 注2) キーデータ長の計算方法はデータ型によって異なります。詳細は“E.3 データ型のサイズ”を参照してください。 各エントリは8バイトのバウンダリに配置されるため、キーデータ長は8バイトの倍数となるように調整する必要があります。
|
(2)ページの容量 | 8192(注1) × fillfactor(注2) - 24(注3) - 16(注4) 注1) ページ長(8192) 注2) インデックス定義で指定したfillfactorの値(省略時は90%)。 primary key制約、unique制約のインデックスの場合は、 テーブル定義の各制約で指定したfillfactorの値(省略時は90%) 注3) ページヘッダ(24) 注4) スペシャルデータ(16)
|
(3)ページ内エントリ数 | (2)ページの容量 ÷ ((1)エントリ長 + 4(注1)) 注1) ポインター長
|
(4)インデックス格納に必要なページ数 | 総レコード数 ÷ (3)ページ内エントリ数
|
(5)スペース量 | (4)インデックス格納に必要なページ数 × 8192(注1) ÷ 使用率(注2) 注1) ページ長 注2) 0.7以下を指定してください。 |
項目 | 見積り式(バイト) |
---|---|
(5)スペース量 | 総レコード数 × キーデータ長 × 圧縮率(注1) ÷ 使用率(注2) 注1) 圧縮率はデータ値によって異なるため、1を指定してください。 注2) 使用率については、0.7以下を指定してください。 |