myisamchk supports the following options for actions other than table checks and repairs:
Analyze the distribution of key values. This improves join performance by enabling the join optimizer to better choose the order in which to join the tables and which indexes it should use. To obtain information about the key distribution, use a myisamchk --description --verbose
tbl_namecommand or the
SHOW INDEX FROMstatement.
Find the record that a block at the given offset belongs to.
Print some descriptive information about the table. Specifying the
--verboseoption once or twice produces additional information. See Section 18.104.22.168, “Obtaining Table Information with myisamchk”.
AUTO_INCREMENTnumbering for new records to start at the given value (or higher, if there are existing records with
AUTO_INCREMENTvalues this large). If
valueis not specified,
AUTO_INCREMENTnumbers for new records begin with the largest value currently in the table, plus one.
Sort the index tree blocks in high-low order. This optimizes seeks and makes table scans that use indexes faster.
Sort records according to a particular index. This makes your data much more localized and may speed up range-based
ORDER BYoperations that use this index. (The first time you use this option to sort a table, it may be very slow.) To determine a table's index numbers, use
SHOW INDEX, which displays a table's indexes in the same order that myisamchk sees them. Indexes are numbered beginning with 1.
If keys are not packed (
PACK_KEYS=0), they have the same length, so when myisamchk sorts and moves records, it just overwrites record offsets in the index. If keys are packed (
PACK_KEYS=1), myisamchk must unpack key blocks first, then re-create indexes and pack the key blocks again. (In this case, re-creating indexes is faster than updating offsets for each index.)