インデックスサイズの見積り方法について、説明します。
Open SQLは、B-tree、Hash、GiSおよびGINの4種類のインデックスを提供しています(PostgreSQLと同様です)。CREATE INDEX文でインデックスの種類を指定しない場合は、B-treeインデックスを生成します。
ここでは、B-treeインデックスの見積り方法について、説明します。
B-treeインデックスは8キロバイトの固定サイズのページとして保存されます。ページの種類はmetaページ、rootページ、leafページ、internalページ、deletedページ、emptyページがあります。これらのうち、通常leafページが大部分を占めるので、leafページだけを計算します。
項目 | 見積り式(バイト) |
---|---|
(1)エントリ長 | 8(注1) + キーデータ長(注2) 注1)エントリヘッド部
|
(2)ページの容量 | 8152(注1) 注1)ページ長(8192)-ページヘッダ(24)-スペシャルデータ(16)= 8152 |
(3)ページ内エントリ数 | (2)ページの容量÷((1)エントリ長 + 4(注1)) 注1)ポインター長
|
(4)インデックス格納に必要なページ数 | 総レコード数÷(3)ページ内エントリ数
|
(5)スペース量 | (4)インデックス格納に必要なページ数×8192(注1)÷使用率(注2) 注1)ページ長 |
項目 | 見積り式(バイト) |
---|---|
(5)スペース量 | 総レコード数×キーデータ長×圧縮率(注1)÷使用率(注2) 注1)圧縮率はデータ値によって異なるため、1を指定してください。 |