MYISAMCHK(1) MariaDB Database System MYISAMCHK(1) (NAME) myisamchk - MyISAM (SYNOPSIS) myisamchk [options] tbl_name ... (DESCRIPTION) myisamchk . myisamchk MyISAM ( .MYD .MYI ). myisamchk (partitioned) . . . myisamchk : shell> myisamchk [options] tbl_name ... options myisamchk . . myisamchk --help . myisamchk . myisamchk . tbl_name . myisamchk myisamchk . myisamchk . . myisamchk . ( .MYI) . *.MYI . MyISAM : shell> myisamchk *.MYI : shell> myisamchk /path/to/database_dir/*.MYI MariaDB : shell> myisamchk /path/to/datadir/*/*.MYI MyISAM : shell> myisamchk --silent --fast /path/to/datadir/*/*.MYI MyISAM : shell> myisamchk --silent --force --fast --update-state \ --key_buffer_size=64M --sort_buffer_size=64M \ --read_buffer_size=1M --write_buffer_size=1M \ /path/to/datadir/*/*.MYI 64MB . myisamchk "MYISAMCHK MEMORY USAGE" . myisamchk . MariaDB myisamchk myisamchk ..PP myisamchk : warning: clients are using or haven't closed the table properly ( mariadbd) MyISAM . mariadbd FLUSH TABLES () . myisamchk . CHECK TABLE myisamchk . myisamchk [myisamchk] . MYISAMCHK (MYISAMCHK GENERAL OPTIONS) myisamchk . . o --help, -? . . o --HELP, -H . . o --debug=debug_options, -# debug_options . debug_options 'd:t:o,file_name' . 'd:t:o,/tmp/myisamchk.trace' . o --silent, -s . . -s (-ss) myisamchk . o --verbose, -v . . -d -e . -v (-vv -vvv) . o --version, -V . o --wait, -w . mariadbd myisamchk . o --print-defaults.sp . o --no-defaults . o --defaults-file=# . o --defaults-extra-file=# . --var_name=value : +---------------------+---------------------------+ | | | | | | +---------------------+---------------------------+ |decode_bits | 9 | +---------------------+---------------------------+ |ft_max_word_len | | | | | +---------------------+---------------------------+ |ft_min_word_len | 4 | +---------------------+---------------------------+ |ft_stopword_file | | | | | +---------------------+---------------------------+ |key_buffer_size | 523264 | +---------------------+---------------------------+ |key_cache_block_size | 1024 | +---------------------+---------------------------+ |myisam_block_size | 1024 | +---------------------+---------------------------+ |read_buffer_size | 262136 | +---------------------+---------------------------+ |sort_buffer_size | 2097144 | +---------------------+---------------------------+ |sort_key_blocks | 16 | +---------------------+---------------------------+ |stats_method | nulls_unequal | +---------------------+---------------------------+ |write_buffer_size | 262136 | +---------------------+---------------------------+ myisamchk myisamchk --help : sort_buffer_size --recover . key_buffer_size --extend-check ( ). : o --safe-recover . o . CHAR VARCHAR TEXT . myisamchk --sort-recover . (key buffer) (sorting) . key_buffer_size sort_buffer_size . . myisam_block_size . stats_method NULL --analyze . myisam_stats_method . myisam_stats_method Section 5.1.4, "Server System Variables" Section 7.4.7, "MyISAM Index Statistics Collection" . ft_min_word_len ft_max_word_len FULLTEXT . ft_stopword_file (stopword) . . myisamchk ( repair analyze) FULLTEXT stopword . . . MyISAM . stopword ft_min_word_len ft_max_word_len ft_stopword_file myisamchk mariadbd . myisamchk : shell> myisamchk --recover --ft_min_word_len=3 tbl_name.MYI myisamchk [mariadbd] [myisamchk] (option file) : [mariadbd] ft_min_word_len=3 [myisamchk] ft_min_word_len=3 myisamchk REPAIR TABLE ANALYZE TABLE OPTIMIZE TABLE ALTER TABLE . ..SH " MYISAMCHK (MYISAMCHK CHECK OPTIONS)" myisamchk : o --check, -c . . o --check-only-changed, -C . o --extend-check, -e . . . myisamchk myisamchk --medium-check . --extend-check key_buffer_size . "MYISAMCHK TABLE INFORMATION" . o --fast, -F . o --force, -f myisamchk . --recover -r . --update-state . o --information, -i . o --medium-check, -m --extend-check . 99.99% . o --read-only, -T . myisamchk mariadbd (external locking) . o --update-state, -U .MYI (crash) . --check-only-changed mariadbd . myisamchk ( --recover --safe-recover ): o --backup, -B .MYD file_name-time.BAK . o --character-sets-dir=path (character sets). o --correct-checksum (checksum) . o --create-missing-keys . . --quick . o --data-file-length=len, -D len ( "" ). o --extend-check, -e . (garbage) . . "MYISAMCHK TABLE INFORMATION" . o --force, -f ( tbl_name.TMD) . --force 'myisam_sort_buffer_size is too small' . myisam_sort_buffer_size . o --keys-used=val, -k val myisamchk . 0 . 0 (insert) . myisamchk -r . o --max-record-length=len myisamchk . o --parallel-recover, -p.sp -r -n . () . ! o --quick, -q . myisamchk . : . o --recover, -r ( MyISAM ) . . --safe-recover myisamchk --recover . ( --recover .) sort_buffer_size . o --safe-recover, -o . --recover --recover . --recover . --recover --recover --safe-recover . key_buffer_size . o --set-collation=name (collation) . (character set) . o --sort-recover, -n myisamchk . o --tmpdir=path, -t path . myisamchk TMPDIR . tmpdir (round-robin) . Unix (":") Windows NetWare OS/2 - (";") . o --unpack, -u myisampack . myisamchk : o --analyze, -a . (join optimizer) (join) . myisamchk --description --verbose tbl_name SHOW INDEX FROM tbl_name . o --block-search=offset, -b offset (offset) . o --description, -d . --verbose . "MYISAMCHK TABLE INFORMATION" . o --set-auto-increment[=value], -A[value] AUTO_INCREMENT ( AUTO_INCREMENT ). value AUTO_INCREMENT . o --sort-index, -S (high-low) . (seeks) (table scans) . o --sort-records=N, -R N . (localized) SELECT ORDER BY . ( .) SHOW INDEX myisamchk . . (PACK_KEYS=0) myisamchk . (PACK_KEYS=1) myisamchk . ( .) o --stats-method=name NULL . name "nulls_unequal" () "nulls_equal" ( MySQL 4) "nulls_ignored". MyISAM . . o myisamchk -d tbl_name myisamchk " " (describe mode) . MariaDB (external locking) myisamchk . myisamchk . o myisamchk -dv tbl_name -v myisamchk (verbose) . -v . o myisamchk -eis tbl_name . . o myisamchk -eiv tbl_name -eis . tbl_name MyISAM (index file) myisamchk(1) . tbl_name . person . ( MAX_ROWS myisamchk .) CREATE TABLE person ( id INT NOT NULL AUTO_INCREMENT, last_name VARCHAR(20) NOT NULL, first_name VARCHAR(20) NOT NULL, birth DATE, death DATE, PRIMARY KEY (id), INDEX (last_name, first_name), INDEX (birth) ) MAX_ROWS = 1000000; : -rw-rw---- 1 mysql mysql 9347072 Aug 19 11:47 person.MYD -rw-rw---- 1 mysql mysql 6066176 Aug 19 11:47 person.MYI myisamchk -dvv: MyISAM file: person Record format: Packed Character set: latin1_swedish_ci (8) File-version: 1 Creation time: 2009-08-19 16:47:41 Recover time: 2009-08-19 16:47:56 Status: checked,analyzed,optimized keys Auto increment key: 1 Last value: 306688 Data records: 306688 Deleted blocks: 0 Datafile parts: 306688 Deleted data: 0 Datafile pointer (bytes): 4 Keyfile pointer (bytes): 3 Datafile length: 9347072 Keyfile length: 6066176 Max datafile length: 4294967294 Max keyfile length: 17179868159 Recordlength: 54 table description: Key Start Len Index Type Rec/key Root Blocksize 1 2 4 unique long 1 99328 1024 2 6 20 multip. varchar prefix 512 3563520 1024 27 20 varchar 512 3 48 3 multip. uint24 NULL 306688 6065152 1024 Field Start Length Nullpos Nullbit Type 1 1 1 2 2 4 no zeros 3 6 21 varchar 4 27 21 varchar 5 48 3 1 1 no zeros 6 51 3 1 2 no zeros myisamchk . "Keyfile" (index file) . "Record" "row" "field" "column" . :.sp o MyISAM MyISAM (). o (Record format) . Fixed length . Compressed Packed. ( Packed SHOW TABLE STATUS Dynamic .) o (Character set) . o (File-version) MyISAM. 1 . o (Creation time) . o (Recover time) / . o (Status) . : crashed open changed analyzed optimized keys sorted index pages. o Auto increment (Last value) AUTO_INCREMENT . . o (Data records) . o (Deleted blocks) . . : 6.6.4 "MyISAM Table Optimization". o (Datafile parts) (dynamic-row) . (fragmented) Data records . o (Deleted data) . . : 6.6.4 "MyISAM Table Optimization". o (Datafile pointer) . . MariaDB . (fixed) . (dynamic) . o (Keyfile pointer) . . MariaDB . . o (Max datafile length) . o (Max keyfile length) . o (Recordlength) . table description . myisamchk : o (Key) . . . table description . . o (Start) . o (Len) . (packed) . . Len . o (Index) . unique multip. (). o (Type) . MyISAM packed stripped empty. o (Root) . o (Blocksize) . MariaDB . o Rec/key . . 1 . ( ) myisamchk -a . 30 . : o Field . o Start . o Length . o Nullpos, Nullbit NULL MyISAM NULL . NULL . Nullpos Nullbit NULL . NULL 1 . person Field . o Type . : o constant . o no endspace . o no endspace, not_always . o no endspace, no empty . . o table-lookup ENUM . o zerofill(N) N 0 . o no zeros . o always zero . o Huff tree (Huffman tree) . o Bits . Huff tree Bits myisampack . myisampack(1) . myisamchk -eiv: Checking MyISAM file: person Data records: 306688 Deleted blocks: 0 - check file-size - check record delete-chain No recordlinks - check key delete-chain block_size 1024: - check index reference - check data record references index: 1 Key: 1: Keyblocks used: 98% Packed: 0% Max levels: 3 - check data record references index: 2 Key: 2: Keyblocks used: 99% Packed: 97% Max levels: 3 - check data record references index: 3 Key: 3: Keyblocks used: 98% Packed: -14% Max levels: 3 Total: Keyblocks used: 98% Packed: 89% - check records and index references *** LOTS OF ROW NUMBERS DELETED *** Records: 306688 M.recordlength: 25 Packed: 83% Recordspace used: 97% Empty space: 2% Blocks/Record: 1.00 Record blocks: 306688 Delete blocks: 0 Record data: 7934464 Deleted data: 0 Lost space: 256512 Linkdata: 1156096 User time 43.08, System time 1.68 Maximum resident set size 0, Integral resident set size 0 Non-physical pagefaults 0, Physical pagefaults 0, Swaps 0 Blocks in 0 out 7, Messages in 0 out 0, Signals 0 Voluntary context switches 0, Involuntary context switches 0 Maximum memory usage: 1046926 bytes (1023k) myisamchk -eiv : o Data records . o Deleted blocks . . 6.6.4 "MyISAM Table Optimization" . o Key . o Keyblocks used . myisamchk ( ). o Packed MariaDB (pack) . (indexes) CHAR VARCHAR . ( ) . 40 97% . o Max levels.sp B-tree . . o Records . o M.recordlength . . o Packed MariaDB . Packed . o Recordspace used . o Empty space . o Blocks/Record ( ). 1.0 . 1.0 . . : 6.6.4 " MyISAM". o Recordblocks () . . o Deleteblocks () . o Recorddata . o Deleted data () . o Lost space . . o Linkdata ( ) . Linkdata . myisamchk . myisamchk . myisamchk . . myisamchk . (RAM) ( ): shell> myisamchk --sort_buffer_size=16M \ --key_buffer_size=16M \ --read_buffer_size=1M \ --write_buffer_size=1M ... --sort_buffer_size=16M . myisamchk TMPDIR . TMPDIR (out of memory) . myisamchk --tmpdir=path . myisamchk : o ( ). --quick (index) . . o . (truncate) . . o --recover --sort-recover ( --safe-recover) . ( TMPDIR --tmpdir=path) . : (largest_key + row_pointer_length) x number_of_rows x 2 row_pointer_length myisamchk -dv tbl_name ( "MYISAMCHK TABLE INFORMATION" ). row_pointer_length number_of_rows Datafile pointer Data records . largest_key Key . Len . Len . --recover --safe-recover ..SH " (COPYRIGHT)" 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc., 2010-2025 MariaDB Foundation << >> (GNU General Public License) . . GNU General Public License . GNU General Public License Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA http://www.gnu.org/licenses . (SEE ALSO) MariaDB https://mariadb.com/docs . (AUTHORS) MariaDB Foundation (http://www.mariadb.org). MariaDB 11.8 5 March 2025 MYISAMCHK(1)