Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


14.9.1 InnoDB 行ストレージの概要

行とそれに関連付けられたカラムのストレージが、クエリーや DML 操作のパフォーマンスに影響を与えます。1 つのディスクページに収まる行数が多いほど、クエリーやインデックスルックアップの処理は速くなり、InnoDB バッファープールで必要なキャッシュメモリーは減り、数値カラムや短い文字列カラムの更新された値を書き出すために必要な I/O も少なくなります。

各 InnoDB テーブル内のデータは、ページに分割されます。各テーブルを構成するページは、B ツリーインデックスと呼ばれるツリーデータ構造で配置されます。テーブルデータとセカンダリインデックスはどちらも、このタイプの構造を使用します。テーブル全体を表す B ツリーインデックスは、クラスタ化されたインデックスと呼ばれます。これは、主キーカラムに従って編成されます。インデックスデータ構造のノードには、その行内のすべてのカラム (クラスタ化されたインデックスの場合)、またはインデックスカラムと主キーカラム (セカンダリインデックスの場合) の値が含まれています。

可変長カラムは、このルールの例外です。B ツリーページに収めるには長すぎる BLOBVARCHAR などのカラムは、オーバーフローページと呼ばれる、個別に割り当てられたディスクページに格納されます。このようなカラムを、オフページカラムと呼びます。これらのカラムの値は、オーバーフローページの片方向リンクリストに格納され、このような各カラムには 1 つ以上のオーバーフローページの独自のリストがあります。場合によっては、ストレージの浪費を避け、また個別のページを読み取る必要をなくすために、長いカラム値のすべてまたはプリフィクスが B ツリーに格納されます。

次のセクションでは、これらの可変長カラムを表す方法を制御するために CREATE TABLE および ALTER TABLE ステートメントで使用できる句である ROW_FORMATKEY_BLOCK_SIZE について説明します。これらの句を使用するには、innodb_file_per_table および innodb_file_format 構成オプションの設定の変更も必要になる可能性があります。


User Comments
Sign Up Login You must be logged in to post a comment.