これは、オプションの myisampack ツール(ISAM テーブルでは pack_isam)で生成される読み取り専用テーブルです。
MySQL ディストリビューションは、MySQL が GPL 版になる前のものも含めて、いずれも myisampack で圧縮されたテーブルを読み取ることができる。
圧縮テーブルはごくわずかなディスク領域しか使用しない。ディスク使用量が最小限に抑えられるため、遅いディスク(CD-ROM など)を使用する場合に適している。
各レコードは別々に圧縮される(アクセスオーバヘッドがきわめて少ない)。レコードのヘッダは、テーブルで最も大きなレコードに応じて固定される(1 ? 3 バイト)。各カラムは異なる方法で圧縮される。圧縮タイプには次のものがある。
通常は、カラムごとに異なるハフマンテーブルが存在する。
サフィックス空白の圧縮。
プリフィックス空白の圧縮。
値 0 の数値は 1 ビットで格納する。
値の範囲が小さい整数カラムは、可能な限り小さな型を使って格納する。たとえば、BIGINT カラム(8 バイト)のすべての値が 0 ? 255 の範囲内にある場合は、このカラムを TINYINT カラム(1 バイト)として格納する。
カラムの可能値が少ない場合は、カラムの型を ENUM に変換する。
上記の圧縮を組み合わせて使用することもできる。
固定長または可変長のレコードを処理できる。
myisamchk で圧縮を解除できる。