Documentation Home
MySQL 8.0 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 36.1Mb
PDF (A4) - 36.2Mb
HTML Download (TGZ) - 10.0Mb
HTML Download (Zip) - 10.1Mb


このページは機械翻訳したものです。

15.6.2.2 InnoDB インデックスの物理構造

空間インデックスを除き、InnoDB インデックスは B-tree データ構造です。 空間インデックスでは、多次元データのインデックス付けに特化したデータ構造である R-trees を使用します。 インデックスレコードは、B ツリーまたは R ツリーデータ構造のリーフページに格納されます。 インデックスページのデフォルトサイズは 16K バイトです。

新しいレコードが InnoDB clustered index に挿入されると、InnoDB は将来のインデックスレコードの挿入および更新のために 1/16 のページを解放しようとします。 インデックスレコードが順次 (昇順または降順) に挿入されると、インデックスページの約 15/16 までがいっぱいになります。 レコードがランダムに挿入された場合は、ページの 1/2 から 15/16 までがいっぱいになります。

InnoDB では、B ツリーインデックスの作成または再構築時にバルクロードが実行されます。 このインデックス作成方法は、ソートされたインデックス作成と呼ばれます。 innodb_fill_factor 構成オプションは、ソートされたインデックスの作成時に入力される各 B ツリーページの領域の割合を定義します。残りの領域は、将来のインデックスの増加のために予約されています。 ソートされたインデックス構築は、空間インデックスではサポートされていません。 詳細は、セクション15.6.2.3「ソートされたインデックス構築」を参照してください。 innodb_fill_factor を 100 に設定すると、クラスタ化されたインデックスページの領域の 1/16 は将来のインデックスの増加に備えて解放されます。

InnoDB インデックスページの塗りつぶし係数が MERGE_THRESHOLD の下にドロップされた場合 (指定されていない場合、デフォルトで 50%)、InnoDB はインデックスツリーを縮小してページを解放しようとします。 MERGE_THRESHOLD 設定は、B ツリーインデックスと R ツリーインデックスの両方に適用されます。 詳細は、セクション15.8.11「インデックスページのマージしきい値の構成」を参照してください。

MySQL インスタンスを初期化する前に innodb_page_size 構成オプションを設定することで、MySQL インスタンスのすべての InnoDB テーブルスペースに対して page size を定義できます。 インスタンスのページサイズを定義した後は、インスタンスを再初期化しないと変更できません。 サポートされているサイズは、64KB、32KB、16KB (デフォルト)、8KB および 4KB です。

特定の InnoDB ページサイズを使用している MySQL インスタンスは、別のページサイズを使用するインスタンスのデータファイルやログファイルを使用できません。