圧縮ストレージフォーマットは、myisampack ツールで生成される読み取り専用のフォーマットです。 圧縮テーブルは myisamchk を使って解凍できます。
圧縮テーブルには次のような特徴があります。
圧縮テーブルに必要なディスク容量はごくわずかです。 これによりディスクの使用量は最少になるため、低速のディスクを使用する場合に役立ちます (CD-ROM など)。
-
それぞれの行は個々に圧縮されるため、アクセスのオーバーヘッドはごくわずかです。 行のヘッダーに必要なバイト数は、テーブル中の一番大きい行によって異なりますが、1 - 3 バイトです。 各カラムは別々に圧縮されます。 カラムごとに異なる Huffman ツリーがあるのが一般的です。 圧縮タイプのいくつかは次のとおりです。
サフィクススペース圧縮。
プリフィクススペース圧縮。
値が 0 の数値は 1 ビットで格納されます。
値の範囲が小さい整数カラムは、可能なかぎり小さな型を使って格納されます。 たとえば、
BIGINT
カラム (8 バイト) のすべての値が-128
から127
の範囲内にある場合は、このカラムをTINYINT
カラム (1 バイト) として格納できます。カラムの可能値が少ない場合は、データの型を
ENUM
に変換します。カラムに、上記の圧縮型を組み合わせて使用してもかまいません。
固定長または動的長の行を使用できます。
圧縮テーブルは読み取り専用なので、テーブルの行を更新したり、行を追加したりはできませんが、DDL (データ定義言語) 操作は有効です。 たとえば、DROP
を使用してテーブルを削除しても、TRUNCATE TABLE
を使用してテーブルを空にしてもかまいません。