静的フォーマットは MyISAM
テーブルのデフォルトです。これは、テーブルが可変長カラムを持たない時に使用されます。
(VARCHAR
、 VARBINARY
、
BLOB
、また
TEXT
)それぞれの行は固定バイト数を利用して格納されます。
3つの MyISAM
ストレージフォーマットの中で、静的フォーマットが一番シンプルで安全です。(一番破損しにくい)これはまた、データファイル中の行がディスク上で見つけられるという簡単さゆえ、オンディスクフォーマットの中でも一番早いです。インデックスの中で行数に基づいて行の位置を探すには、行数に行長をかけてください。また、テーブルをスキャンする時には、それぞれのディスクの読み込み操作を使って簡単に行の定数を読む事ができます。
もしMySQLサーバーが固定フォーマットのMyISAM
ファイルに書き込んでいる最中にコンピュータがクラッシュしたら、そのセキュリティが証明されます。この場合、myisamchk
はそれぞれの行がどこで始まりどこで終わるかを簡単に測定する事ができますので、部分的に書かれた物以外の全ての行を大概再生する事ができます。MyISAM
テーブルインデックスは、データ行に基づいていつでも再配列できるという事を覚えておいてください。
固定長の行フォーマットはBLOB
か TEXT
カラムの無いテーブルでだけ使用する事ができます。明確な
ROW_FORMAT
条項を持つカラムを使ってテーブルを作成する事によって、エラーや警告は発生しません。フォーマットの仕様は無視されるのです。
静的フォーマットにはこれらの特徴があります。
CHAR
と VARCHAR
カラムは、タイプは変えられていませんが、特定のカラム幅にスペースが埋め込まれた物です。BINARY
と VARBINARY
カラムは幅が0x00
バイトで埋め込まれています。
とても速いです。
キャッシュが簡単です。
行が固定位置にあるので、クラッシュした後も修復が簡単です。
莫大な数の行を削除してしまい、フリーディスクスペースをOSに戻したい時以外は、再編成の必要はありません。これをするには、OPTIMIZE
TABLE
か myisamchk
-rを使用してください。
ほとんどの場合、動的フォーマットテーブルよりもディスクの領域を必要とします。