myisampack is a tool for compressing MyISAM tables. The resulting tables
are read-only, and usually about 40% to 70% smaller. It is run as follows:
myisampack [options] file_name [file_name2...]
file_name is the
.MYI index file. The extension can be omitted,
although keeping it permits wildcards, such as:
...to compress all the files.
myisampack compresses each column separately, and, when the resulting data
is read, only the individual rows and columns required need to be decompressed,
allowing for quicker reading.
Once a table has been packed, use
myisamchk -rq (the quick
and recover options) to rebuild its indexes.
myisampack does not support partitioned tables.
Do not run myisampack if the tables could be updated during the operation, and skip_external_locking has been set.
The following variables can be set while passed as commandline options to
myisampack, or set with a
[myisampack] section in your
|Make a backup of the table as |
|Directory where character sets are.|
|Output debug log. Often this is |
|Force packing of table even if it gets bigger or if tempfile exists.|
|Join all given tables into |
|Display help and exit.|
|Only write output when an error occurs|
|Use temporary directory to store temporary table.|
|Don't pack table, only test packing it.|
|Write info about progress and packing result. Use multiple |
|Output version information and exit.|
|Wait and retry if table is in use.|
To uncompress a table compressed with
myisampack, use the
myisamchk -u option.
> myisampack /var/lib/mysql/test/posts Compressing /var/lib/mysql/test/posts.MYD: (1680 records) - Calculating statistics - Compressing file 37.71% > myisamchk -rq /var/lib/mysql/test/posts - check record delete-chain - recovering (with sort) MyISAM-table '/var/lib/mysql/test/posts' Data records: 1680 - Fixing index 1 - Fixing index 2