圧縮ストレージフォーマットはmyisampack ツールによって生成される読み取り専用のフォーマットです。圧縮テーブルは myisamchkを使って解凍する事ができます。
圧縮テーブルには次のような特徴があります。
圧縮テーブルはごくわずかなディスク容量しか必要としません。そのおかげでディスクの使用を最小化する事ができるので、低速ディスク (CD-ROMなど)を利用する時に便利です。
それぞれの行が別々に圧縮されるので、アクセスオーバーヘッドがほとんどありません。行のヘッダーは、そのテーブルの中の一番大きな行に応じて、1から3バイトに固定されます。それぞれのカラムは違う方法で圧縮されます。それぞれのカラムは通常異なったハフマンツリーを持ちます。以下はいくつかの圧縮タイプの例です。
サフィックス空白の圧縮
プレフィックス空白の圧縮
値0の数値は1ビットで格納されます。
値の範囲が小さい整数カラムは、可能な限り小さな型を使って格納されます。例えば、BIGINT
カラム
(8バイト)の全ての値が-128
から 127
の範囲内にある場合は、このカラムを
TINYINT
カラム(1バイト)として格納する事ができます。
カラムの可能値が少ない場合は、データの型を
ENUM
に変換します。
上記の圧縮を組み合わせて使用する事もできます。
固定長または可変長の行を処理する事ができます。
注:
圧縮テーブルは読み取り専用なので、テーブルを更新したり、行を追加したりはできません。DDL
(データ定義言語)
操作は有効です。例えば、テーブルをドロップする為に
DROP
を利用したり、空にする為に
TRUNCATE
を利用する事もできます。