2507 lines
		
	
	
		
			51 KiB
		
	
	
	
		
			Groff
		
	
	
	
			
		
		
	
	
			2507 lines
		
	
	
		
			51 KiB
		
	
	
	
		
			Groff
		
	
	
	
| '\" t
 | |
| .\"     Title: \fBmyisamchk\fR
 | |
| .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 | |
| .\" Generator: DocBook XSL Stylesheets v1.77.1 <http://docbook.sf.net/>
 | |
| .\"      Date: 11/04/2013
 | |
| .\"    Manual: MySQL Database System
 | |
| .\"    Source: MySQL 5.1
 | |
| .\"  Language: English
 | |
| .\"
 | |
| .TH "\FBMYISAMCHK\FR" "1" "11/04/2013" "MySQL 5\&.1" "MySQL Database System"
 | |
| .\" -----------------------------------------------------------------
 | |
| .\" * Define some portability stuff
 | |
| .\" -----------------------------------------------------------------
 | |
| .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| .\" http://bugs.debian.org/507673
 | |
| .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
 | |
| .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| .ie \n(.g .ds Aq \(aq
 | |
| .el       .ds Aq '
 | |
| .\" -----------------------------------------------------------------
 | |
| .\" * set default formatting
 | |
| .\" -----------------------------------------------------------------
 | |
| .\" disable hyphenation
 | |
| .nh
 | |
| .\" disable justification (adjust text to left margin only)
 | |
| .ad l
 | |
| .\" -----------------------------------------------------------------
 | |
| .\" * MAIN CONTENT STARTS HERE *
 | |
| .\" -----------------------------------------------------------------
 | |
| .\" myisamchk
 | |
| .SH "NAME"
 | |
| myisamchk \- MyISAM table\-maintenance utility
 | |
| .SH "SYNOPSIS"
 | |
| .HP \w'\fBmyisamchk\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fItbl_name\fR\fR\fB\ \&.\&.\&.\fR\ 'u
 | |
| \fBmyisamchk [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fItbl_name\fR\fR\fB \&.\&.\&.\fR
 | |
| .SH "DESCRIPTION"
 | |
| .PP
 | |
| The
 | |
| \fBmyisamchk\fR
 | |
| utility gets information about your database tables or checks, repairs, or optimizes them\&.
 | |
| \fBmyisamchk\fR
 | |
| works with
 | |
| MyISAM
 | |
| tables (tables that have
 | |
| \&.MYD
 | |
| and
 | |
| \&.MYI
 | |
| files for storing data and indexes)\&.
 | |
| .PP
 | |
| You can also use the
 | |
| CHECK TABLE
 | |
| and
 | |
| REPAIR TABLE
 | |
| statements to check and repair
 | |
| MyISAM
 | |
| tables\&. See
 | |
| Section\ \&13.7.2.3, \(lqCHECK TABLE Syntax\(rq, and
 | |
| Section\ \&13.7.2.6, \(lqREPAIR TABLE Syntax\(rq\&.
 | |
| .PP
 | |
| The use of
 | |
| \fBmyisamchk\fR
 | |
| with partitioned tables is not supported\&.
 | |
| .if n \{\
 | |
| .sp
 | |
| .\}
 | |
| .RS 4
 | |
| .it 1 an-trap
 | |
| .nr an-no-space-flag 1
 | |
| .nr an-break-flag 1
 | |
| .br
 | |
| .ps +1
 | |
| \fBCaution\fR
 | |
| .ps -1
 | |
| .br
 | |
| .PP
 | |
| It is best to make a backup of a table before performing a table repair operation; under some circumstances the operation might cause data loss\&. Possible causes include but are not limited to file system errors\&.
 | |
| .sp .5v
 | |
| .RE
 | |
| .PP
 | |
| Invoke
 | |
| \fBmyisamchk\fR
 | |
| like this:
 | |
| .sp
 | |
| .if n \{\
 | |
| .RS 4
 | |
| .\}
 | |
| .nf
 | |
| shell> \fBmyisamchk [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fItbl_name\fR\fR\fB \&.\&.\&.\fR
 | |
| .fi
 | |
| .if n \{\
 | |
| .RE
 | |
| .\}
 | |
| .PP
 | |
| The
 | |
| \fIoptions\fR
 | |
| specify what you want
 | |
| \fBmyisamchk\fR
 | |
| to do\&. They are described in the following sections\&. You can also get a list of options by invoking
 | |
| \fBmyisamchk \-\-help\fR\&.
 | |
| .PP
 | |
| With no options,
 | |
| \fBmyisamchk\fR
 | |
| simply checks your table as the default operation\&. To get more information or to tell
 | |
| \fBmyisamchk\fR
 | |
| to take corrective action, specify options as described in the following discussion\&.
 | |
| .PP
 | |
| \fItbl_name\fR
 | |
| is the database table you want to check or repair\&. If you run
 | |
| \fBmyisamchk\fR
 | |
| somewhere other than in the database directory, you must specify the path to the database directory, because
 | |
| \fBmyisamchk\fR
 | |
| has no idea where the database is located\&. In fact,
 | |
| \fBmyisamchk\fR
 | |
| does not actually care whether the files you are working on are located in a database directory\&. You can copy the files that correspond to a database table into some other location and perform recovery operations on them there\&.
 | |
| .PP
 | |
| You can name several tables on the
 | |
| \fBmyisamchk\fR
 | |
| command line if you wish\&. You can also specify a table by naming its index file (the file with the
 | |
| \&.MYI
 | |
| suffix)\&. This enables you to specify all tables in a directory by using the pattern
 | |
| *\&.MYI\&. For example, if you are in a database directory, you can check all the
 | |
| MyISAM
 | |
| tables in that directory like this:
 | |
| .sp
 | |
| .if n \{\
 | |
| .RS 4
 | |
| .\}
 | |
| .nf
 | |
| shell> \fBmyisamchk *\&.MYI\fR
 | |
| .fi
 | |
| .if n \{\
 | |
| .RE
 | |
| .\}
 | |
| .PP
 | |
| If you are not in the database directory, you can check all the tables there by specifying the path to the directory:
 | |
| .sp
 | |
| .if n \{\
 | |
| .RS 4
 | |
| .\}
 | |
| .nf
 | |
| shell> \fBmyisamchk \fR\fB\fI/path/to/database_dir/\fR\fR\fB*\&.MYI\fR
 | |
| .fi
 | |
| .if n \{\
 | |
| .RE
 | |
| .\}
 | |
| .PP
 | |
| You can even check all tables in all databases by specifying a wildcard with the path to the MySQL data directory:
 | |
| .sp
 | |
| .if n \{\
 | |
| .RS 4
 | |
| .\}
 | |
| .nf
 | |
| shell> \fBmyisamchk \fR\fB\fI/path/to/datadir/*/*\fR\fR\fB\&.MYI\fR
 | |
| .fi
 | |
| .if n \{\
 | |
| .RE
 | |
| .\}
 | |
| .PP
 | |
| The recommended way to quickly check all
 | |
| MyISAM
 | |
| tables is:
 | |
| .sp
 | |
| .if n \{\
 | |
| .RS 4
 | |
| .\}
 | |
| .nf
 | |
| shell> \fBmyisamchk \-\-silent \-\-fast \fR\fB\fI/path/to/datadir/*/*\fR\fR\fB\&.MYI\fR
 | |
| .fi
 | |
| .if n \{\
 | |
| .RE
 | |
| .\}
 | |
| .PP
 | |
| If you want to check all
 | |
| MyISAM
 | |
| tables and repair any that are corrupted, you can use the following command:
 | |
| .sp
 | |
| .if n \{\
 | |
| .RS 4
 | |
| .\}
 | |
| .nf
 | |
| shell> \fBmyisamchk \-\-silent \-\-force \-\-fast \-\-update\-state \e\fR
 | |
|           \fB\-\-key_buffer_size=64M \-\-myisam_sort_buffer_size=64M \e\fR
 | |
|           \fB\-\-read_buffer_size=1M \-\-write_buffer_size=1M \e\fR
 | |
|           \fB\fI/path/to/datadir/*/*\fR\fR\fB\&.MYI\fR
 | |
| .fi
 | |
| .if n \{\
 | |
| .RE
 | |
| .\}
 | |
| .PP
 | |
| This command assumes that you have more than 64MB free\&. For more information about memory allocation with
 | |
| \fBmyisamchk\fR, see
 | |
| the section called \(lqMYISAMCHK MEMORY USAGE\(rq\&.
 | |
| .PP
 | |
| For additional information about using
 | |
| \fBmyisamchk\fR, see
 | |
| Section\ \&7.6, \(lqMyISAM Table Maintenance and Crash Recovery\(rq\&.
 | |
| .if n \{\
 | |
| .sp
 | |
| .\}
 | |
| .RS 4
 | |
| .it 1 an-trap
 | |
| .nr an-no-space-flag 1
 | |
| .nr an-break-flag 1
 | |
| .br
 | |
| .ps +1
 | |
| \fBImportant\fR
 | |
| .ps -1
 | |
| .br
 | |
| .PP
 | |
| \fIYou must ensure that no other program is using the tables while you are running \fR\fI\fBmyisamchk\fR\fR\&. The most effective means of doing so is to shut down the MySQL server while running
 | |
| \fBmyisamchk\fR, or to lock all tables that
 | |
| \fBmyisamchk\fR
 | |
| is being used on\&.
 | |
| .PP
 | |
| Otherwise, when you run
 | |
| \fBmyisamchk\fR, it may display the following error message:
 | |
| .sp
 | |
| .if n \{\
 | |
| .RS 4
 | |
| .\}
 | |
| .nf
 | |
| warning: clients are using or haven\*(Aqt closed the table properly
 | |
| .fi
 | |
| .if n \{\
 | |
| .RE
 | |
| .\}
 | |
| .PP
 | |
| This means that you are trying to check a table that has been updated by another program (such as the
 | |
| \fBmysqld\fR
 | |
| server) that hasn\*(Aqt yet closed the file or that has died without closing the file properly, which can sometimes lead to the corruption of one or more
 | |
| MyISAM
 | |
| tables\&.
 | |
| .PP
 | |
| If
 | |
| \fBmysqld\fR
 | |
| is running, you must force it to flush any table modifications that are still buffered in memory by using
 | |
| FLUSH TABLES\&. You should then ensure that no one is using the tables while you are running
 | |
| \fBmyisamchk\fR
 | |
| .PP
 | |
| However, the easiest way to avoid this problem is to use
 | |
| CHECK TABLE
 | |
| instead of
 | |
| \fBmyisamchk\fR
 | |
| to check tables\&. See
 | |
| Section\ \&13.7.2.3, \(lqCHECK TABLE Syntax\(rq\&.
 | |
| .sp .5v
 | |
| .RE
 | |
| .PP
 | |
| \fBmyisamchk\fR
 | |
| supports the following options, which can be specified on the command line or in the
 | |
| [myisamchk]
 | |
| group of an option file\&.
 | |
| \fBmyisamchk\fR
 | |
| also supports the options for processing option files described at
 | |
| Section\ \&4.2.3.4, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&.
 | |
| .SH "MYISAMCHK GENERAL OPTIONS"
 | |
| .\" options: myisamchk
 | |
| .\" myisamchk: options
 | |
| .PP
 | |
| The options described in this section can be used for any type of table maintenance operation performed by
 | |
| \fBmyisamchk\fR\&. The sections following this one describe options that pertain only to specific operations, such as table checking or repairing\&.
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: help option
 | |
| .\" help option: myisamchk
 | |
| \fB\-\-help\fR,
 | |
| \fB\-?\fR
 | |
| .sp
 | |
| Display a help message and exit\&. Options are grouped by type of operation\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: HELP option
 | |
| .\" HELP option: myisamchk
 | |
| \fB\-\-HELP\fR,
 | |
| \fB\-H\fR
 | |
| .sp
 | |
| Display a help message and exit\&. Options are presented in a single list\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: debug option
 | |
| .\" debug option: myisamchk
 | |
| \fB\-\-debug=\fR\fB\fIdebug_options\fR\fR,
 | |
| \fB\-# \fR\fB\fIdebug_options\fR\fR
 | |
| .sp
 | |
| Write a debugging log\&. A typical
 | |
| \fIdebug_options\fR
 | |
| string is
 | |
| \*(Aqd:t:o,\fIfile_name\fR\*(Aq\&. The default is
 | |
| \*(Aqd:t:o,/tmp/myisamchk\&.trace\*(Aq\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: silent option
 | |
| .\" silent option: myisamchk
 | |
| \fB\-\-silent\fR,
 | |
| \fB\-s\fR
 | |
| .sp
 | |
| Silent mode\&. Write output only when errors occur\&. You can use
 | |
| \fB\-s\fR
 | |
| twice (\fB\-ss\fR) to make
 | |
| \fBmyisamchk\fR
 | |
| very silent\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: verbose option
 | |
| .\" verbose option: myisamchk
 | |
| \fB\-\-verbose\fR,
 | |
| \fB\-v\fR
 | |
| .sp
 | |
| Verbose mode\&. Print more information about what the program does\&. This can be used with
 | |
| \fB\-d\fR
 | |
| and
 | |
| \fB\-e\fR\&. Use
 | |
| \fB\-v\fR
 | |
| multiple times (\fB\-vv\fR,
 | |
| \fB\-vvv\fR) for even more output\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: version option
 | |
| .\" version option: myisamchk
 | |
| \fB\-\-version\fR,
 | |
| \fB\-V\fR
 | |
| .sp
 | |
| Display version information and exit\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: wait option
 | |
| .\" wait option: myisamchk
 | |
| \fB\-\-wait\fR,
 | |
| \fB\-w\fR
 | |
| .sp
 | |
| Instead of terminating with an error if the table is locked, wait until the table is unlocked before continuing\&. If you are running
 | |
| \fBmysqld\fR
 | |
| with external locking disabled, the table can be locked only by another
 | |
| \fBmyisamchk\fR
 | |
| command\&.
 | |
| .RE
 | |
| .PP
 | |
| You can also set the following variables by using
 | |
| \fB\-\-\fR\fB\fIvar_name\fR\fR\fB=\fR\fB\fIvalue\fR\fR
 | |
| syntax:
 | |
| .\" decode_bits myisamchk variable
 | |
| .\" ft_max_word_len myisamchk variable
 | |
| .\" ft_min_word_len myisamchk variable
 | |
| .\" ft_stopword_file myisamchk variable
 | |
| .\" key_buffer_size myisamchk variable
 | |
| .\" myisam_block_size myisamchk variable
 | |
| .\" read_buffer_size myisamchk variable
 | |
| .\" sort_buffer_size myisamchk variable
 | |
| .\" myisam_sort_buffer_size myisamchk variable
 | |
| .\" sort_key_blocks myisamchk variable
 | |
| .\" stats_method myisamchk variable
 | |
| .\" write_buffer_size myisamchk variable
 | |
| .TS
 | |
| allbox tab(:);
 | |
| lB lB.
 | |
| T{
 | |
| Variable
 | |
| T}:T{
 | |
| Default Value
 | |
| T}
 | |
| .T&
 | |
| l l
 | |
| l l
 | |
| l l
 | |
| l l
 | |
| l l
 | |
| l l
 | |
| l l
 | |
| l l
 | |
| l l
 | |
| l l
 | |
| l l
 | |
| l l.
 | |
| T{
 | |
| decode_bits
 | |
| T}:T{
 | |
| 9
 | |
| T}
 | |
| T{
 | |
| ft_max_word_len
 | |
| T}:T{
 | |
| version\-dependent
 | |
| T}
 | |
| T{
 | |
| ft_min_word_len
 | |
| T}:T{
 | |
| 4
 | |
| T}
 | |
| T{
 | |
| ft_stopword_file
 | |
| T}:T{
 | |
| built\-in list
 | |
| T}
 | |
| T{
 | |
| key_buffer_size
 | |
| T}:T{
 | |
| 523264
 | |
| T}
 | |
| T{
 | |
| myisam_block_size
 | |
| T}:T{
 | |
| 1024
 | |
| T}
 | |
| T{
 | |
| myisam_sort_key_blocks
 | |
| T}:T{
 | |
| 16
 | |
| T}
 | |
| T{
 | |
| read_buffer_size
 | |
| T}:T{
 | |
| 262136
 | |
| T}
 | |
| T{
 | |
| sort_buffer_size
 | |
| T}:T{
 | |
| 2097144
 | |
| T}
 | |
| T{
 | |
| sort_key_blocks
 | |
| T}:T{
 | |
| 16
 | |
| T}
 | |
| T{
 | |
| stats_method
 | |
| T}:T{
 | |
| nulls_unequal
 | |
| T}
 | |
| T{
 | |
| write_buffer_size
 | |
| T}:T{
 | |
| 262136
 | |
| T}
 | |
| .TE
 | |
| .sp 1
 | |
| .PP
 | |
| The possible
 | |
| \fBmyisamchk\fR
 | |
| variables and their default values can be examined with
 | |
| \fBmyisamchk \-\-help\fR:
 | |
| .PP
 | |
| sort_buffer_size
 | |
| is used when the keys are repaired by sorting keys, which is the normal case when you use
 | |
| \fB\-\-recover\fR\&. As of MySQL 5\&.1\&.67,
 | |
| myisam_sort_buffer_size
 | |
| is available as an alternative name to
 | |
| sort_buffer_size\&.
 | |
| myisam_sort_buffer_size
 | |
| is preferable to
 | |
| sort_buffer_size
 | |
| because its name corresponds to the
 | |
| myisam_sort_buffer_size
 | |
| server system variable that has a similar meaning\&.
 | |
| sort_buffer_size
 | |
| should be considered deprecated\&.
 | |
| .PP
 | |
| key_buffer_size
 | |
| is used when you are checking the table with
 | |
| \fB\-\-extend\-check\fR
 | |
| or when the keys are repaired by inserting keys row by row into the table (like when doing normal inserts)\&. Repairing through the key buffer is used in the following cases:
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| You use
 | |
| \fB\-\-safe\-recover\fR\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| The temporary files needed to sort the keys would be more than twice as big as when creating the key file directly\&. This is often the case when you have large key values for
 | |
| CHAR,
 | |
| VARCHAR, or
 | |
| TEXT
 | |
| columns, because the sort operation needs to store the complete key values as it proceeds\&. If you have lots of temporary space and you can force
 | |
| \fBmyisamchk\fR
 | |
| to repair by sorting, you can use the
 | |
| \fB\-\-sort\-recover\fR
 | |
| option\&.
 | |
| .RE
 | |
| .PP
 | |
| Repairing through the key buffer takes much less disk space than using sorting, but is also much slower\&.
 | |
| .PP
 | |
| If you want a faster repair, set the
 | |
| key_buffer_size
 | |
| and
 | |
| myisam_sort_buffer_size
 | |
| variables to about 25% of your available memory\&. You can set both variables to large values, because only one of them is used at a time\&.
 | |
| .PP
 | |
| myisam_block_size
 | |
| is the size used for index blocks\&.
 | |
| .PP
 | |
| stats_method
 | |
| influences how
 | |
| NULL
 | |
| values are treated for index statistics collection when the
 | |
| \fB\-\-analyze\fR
 | |
| option is given\&. It acts like the
 | |
| myisam_stats_method
 | |
| system variable\&. For more information, see the description of
 | |
| myisam_stats_method
 | |
| in
 | |
| Section\ \&5.1.4, \(lqServer System Variables\(rq, and
 | |
| Section\ \&8.5.4, \(lqInnoDB and MyISAM Index Statistics Collection\(rq\&.
 | |
| .PP
 | |
| ft_min_word_len
 | |
| and
 | |
| ft_max_word_len
 | |
| indicate the minimum and maximum word length for
 | |
| FULLTEXT
 | |
| indexes\&.
 | |
| ft_stopword_file
 | |
| names the stopword file\&. These need to be set under the following circumstances\&.
 | |
| .PP
 | |
| If you use
 | |
| \fBmyisamchk\fR
 | |
| to perform an operation that modifies table indexes (such as repair or analyze), the
 | |
| FULLTEXT
 | |
| indexes are rebuilt using the default full\-text parameter values for minimum and maximum word length and the stopword file unless you specify otherwise\&. This can result in queries failing\&.
 | |
| .PP
 | |
| The problem occurs because these parameters are known only by the server\&. They are not stored in
 | |
| MyISAM
 | |
| index files\&. To avoid the problem if you have modified the minimum or maximum word length or the stopword file in the server, specify the same
 | |
| ft_min_word_len,
 | |
| ft_max_word_len, and
 | |
| ft_stopword_file
 | |
| values to
 | |
| \fBmyisamchk\fR
 | |
| that you use for
 | |
| \fBmysqld\fR\&. For example, if you have set the minimum word length to 3, you can repair a table with
 | |
| \fBmyisamchk\fR
 | |
| like this:
 | |
| .sp
 | |
| .if n \{\
 | |
| .RS 4
 | |
| .\}
 | |
| .nf
 | |
| shell> \fBmyisamchk \-\-recover \-\-ft_min_word_len=3 \fR\fB\fItbl_name\fR\fR\fB\&.MYI\fR
 | |
| .fi
 | |
| .if n \{\
 | |
| .RE
 | |
| .\}
 | |
| .PP
 | |
| To ensure that
 | |
| \fBmyisamchk\fR
 | |
| and the server use the same values for full\-text parameters, you can place each one in both the
 | |
| [mysqld]
 | |
| and
 | |
| [myisamchk]
 | |
| sections of an option file:
 | |
| .sp
 | |
| .if n \{\
 | |
| .RS 4
 | |
| .\}
 | |
| .nf
 | |
| [mysqld]
 | |
| ft_min_word_len=3
 | |
| [myisamchk]
 | |
| ft_min_word_len=3
 | |
| .fi
 | |
| .if n \{\
 | |
| .RE
 | |
| .\}
 | |
| .PP
 | |
| An alternative to using
 | |
| \fBmyisamchk\fR
 | |
| is to use the
 | |
| REPAIR TABLE,
 | |
| ANALYZE TABLE,
 | |
| OPTIMIZE TABLE, or
 | |
| ALTER TABLE\&. These statements are performed by the server, which knows the proper full\-text parameter values to use\&.
 | |
| .SH "MYISAMCHK CHECK OPTIONS"
 | |
| .\" check options: myisamchk
 | |
| .\" tables: checking
 | |
| .PP
 | |
| \fBmyisamchk\fR
 | |
| supports the following options for table checking operations:
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: check option
 | |
| .\" check option: myisamchk
 | |
| \fB\-\-check\fR,
 | |
| \fB\-c\fR
 | |
| .sp
 | |
| Check the table for errors\&. This is the default operation if you specify no option that selects an operation type explicitly\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: check-only-changed option
 | |
| .\" check-only-changed option: myisamchk
 | |
| \fB\-\-check\-only\-changed\fR,
 | |
| \fB\-C\fR
 | |
| .sp
 | |
| Check only tables that have changed since the last check\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: extend-check option
 | |
| .\" extend-check option: myisamchk
 | |
| \fB\-\-extend\-check\fR,
 | |
| \fB\-e\fR
 | |
| .sp
 | |
| Check the table very thoroughly\&. This is quite slow if the table has many indexes\&. This option should only be used in extreme cases\&. Normally,
 | |
| \fBmyisamchk\fR
 | |
| or
 | |
| \fBmyisamchk \-\-medium\-check\fR
 | |
| should be able to determine whether there are any errors in the table\&.
 | |
| .sp
 | |
| If you are using
 | |
| \fB\-\-extend\-check\fR
 | |
| and have plenty of memory, setting the
 | |
| key_buffer_size
 | |
| variable to a large value helps the repair operation run faster\&.
 | |
| .sp
 | |
| See also the description of this option under table repair options\&.
 | |
| .sp
 | |
| For a description of the output format, see
 | |
| the section called \(lqOBTAINING TABLE INFORMATION WITH MYISAMCHK\(rq\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: fast option
 | |
| .\" fast option: myisamchk
 | |
| \fB\-\-fast\fR,
 | |
| \fB\-F\fR
 | |
| .sp
 | |
| Check only tables that haven\*(Aqt been closed properly\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: force option
 | |
| .\" force option: myisamchk
 | |
| \fB\-\-force\fR,
 | |
| \fB\-f\fR
 | |
| .sp
 | |
| Do a repair operation automatically if
 | |
| \fBmyisamchk\fR
 | |
| finds any errors in the table\&. The repair type is the same as that specified with the
 | |
| \fB\-\-recover\fR
 | |
| or
 | |
| \fB\-r\fR
 | |
| option\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: information option
 | |
| .\" information option: myisamchk
 | |
| \fB\-\-information\fR,
 | |
| \fB\-i\fR
 | |
| .sp
 | |
| Print informational statistics about the table that is checked\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: medium-check option
 | |
| .\" medium-check option: myisamchk
 | |
| \fB\-\-medium\-check\fR,
 | |
| \fB\-m\fR
 | |
| .sp
 | |
| Do a check that is faster than an
 | |
| \fB\-\-extend\-check\fR
 | |
| operation\&. This finds only 99\&.99% of all errors, which should be good enough in most cases\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: read-only option
 | |
| .\" read-only option: myisamchk
 | |
| \fB\-\-read\-only\fR,
 | |
| \fB\-T\fR
 | |
| .sp
 | |
| Do not mark the table as checked\&. This is useful if you use
 | |
| \fBmyisamchk\fR
 | |
| to check a table that is in use by some other application that does not use locking, such as
 | |
| \fBmysqld\fR
 | |
| when run with external locking disabled\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: update-state option
 | |
| .\" update-state option: myisamchk
 | |
| \fB\-\-update\-state\fR,
 | |
| \fB\-U\fR
 | |
| .sp
 | |
| Store information in the
 | |
| \&.MYI
 | |
| file to indicate when the table was checked and whether the table crashed\&. This should be used to get full benefit of the
 | |
| \fB\-\-check\-only\-changed\fR
 | |
| option, but you shouldn\*(Aqt use this option if the
 | |
| \fBmysqld\fR
 | |
| server is using the table and you are running it with external locking disabled\&.
 | |
| .RE
 | |
| .SH "MYISAMCHK REPAIR OPTIONS"
 | |
| .\" repair options: myisamchk
 | |
| .\" files: repairing
 | |
| .PP
 | |
| \fBmyisamchk\fR
 | |
| supports the following options for table repair operations (operations performed when an option such as
 | |
| \fB\-\-recover\fR
 | |
| or
 | |
| \fB\-\-safe\-recover\fR
 | |
| is given):
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: backup option
 | |
| .\" backup option: myisamchk
 | |
| \fB\-\-backup\fR,
 | |
| \fB\-B\fR
 | |
| .sp
 | |
| Make a backup of the
 | |
| \&.MYD
 | |
| file as
 | |
| \fIfile_name\fR\-\fItime\fR\&.BAK
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: character-sets-dir option
 | |
| .\" character-sets-dir option: myisamchk
 | |
| \fB\-\-character\-sets\-dir=\fR\fB\fIpath\fR\fR
 | |
| .sp
 | |
| The directory where character sets are installed\&. See
 | |
| Section\ \&10.5, \(lqCharacter Set Configuration\(rq\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: correct-checksum option
 | |
| .\" correct-checksum option: myisamchk
 | |
| \fB\-\-correct\-checksum\fR
 | |
| .sp
 | |
| Correct the checksum information for the table\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: data-file-length option
 | |
| .\" data-file-length option: myisamchk
 | |
| \fB\-\-data\-file\-length=\fR\fB\fIlen\fR\fR,
 | |
| \fB\-D \fR\fB\fIlen\fR\fR
 | |
| .sp
 | |
| The maximum length of the data file (when re\-creating data file when it is
 | |
| \(lqfull\(rq)\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: extend-check option
 | |
| .\" extend-check option: myisamchk
 | |
| \fB\-\-extend\-check\fR,
 | |
| \fB\-e\fR
 | |
| .sp
 | |
| Do a repair that tries to recover every possible row from the data file\&. Normally, this also finds a lot of garbage rows\&. Do not use this option unless you are desperate\&.
 | |
| .sp
 | |
| See also the description of this option under table checking options\&.
 | |
| .sp
 | |
| For a description of the output format, see
 | |
| the section called \(lqOBTAINING TABLE INFORMATION WITH MYISAMCHK\(rq\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: force option
 | |
| .\" force option: myisamchk
 | |
| \fB\-\-force\fR,
 | |
| \fB\-f\fR
 | |
| .sp
 | |
| Overwrite old intermediate files (files with names like
 | |
| \fItbl_name\fR\&.TMD) instead of aborting\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: keys-used option
 | |
| .\" keys-used option: myisamchk
 | |
| \fB\-\-keys\-used=\fR\fB\fIval\fR\fR,
 | |
| \fB\-k \fR\fB\fIval\fR\fR
 | |
| .sp
 | |
| For
 | |
| \fBmyisamchk\fR, the option value is a bit\-value that indicates which indexes to update\&. Each binary bit of the option value corresponds to a table index, where the first index is bit 0\&. An option value of 0 disables updates to all indexes, which can be used to get faster inserts\&. Deactivated indexes can be reactivated by using
 | |
| \fBmyisamchk \-r\fR\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: no-symlinks option
 | |
| .\" no-symlinks option: myisamchk
 | |
| \fB\-\-no\-symlinks\fR,
 | |
| \fB\-l\fR
 | |
| .sp
 | |
| Do not follow symbolic links\&. Normally
 | |
| \fBmyisamchk\fR
 | |
| repairs the table that a symlink points to\&. This option does not exist as of MySQL 4\&.0 because versions from 4\&.0 on do not remove symlinks during repair operations\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: max-record-length option
 | |
| .\" max-record-length option: myisamchk
 | |
| \fB\-\-max\-record\-length=\fR\fB\fIlen\fR\fR
 | |
| .sp
 | |
| Skip rows larger than the given length if
 | |
| \fBmyisamchk\fR
 | |
| cannot allocate memory to hold them\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: parallel-recover option
 | |
| .\" parallel-recover option: myisamchk
 | |
| \fB\-\-parallel\-recover\fR,
 | |
| \fB\-p\fR
 | |
| .sp
 | |
| Use the same technique as
 | |
| \fB\-r\fR
 | |
| and
 | |
| \fB\-n\fR, but create all the keys in parallel, using different threads\&.
 | |
| \fIThis is beta\-quality code\&. Use at your own risk!\fR
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: quick option
 | |
| .\" quick option: myisamchk
 | |
| \fB\-\-quick\fR,
 | |
| \fB\-q\fR
 | |
| .sp
 | |
| Achieve a faster repair by modifying only the index file, not the data file\&. You can specify this option twice to force
 | |
| \fBmyisamchk\fR
 | |
| to modify the original data file in case of duplicate keys\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: recover option
 | |
| .\" recover option: myisamchk
 | |
| \fB\-\-recover\fR,
 | |
| \fB\-r\fR
 | |
| .sp
 | |
| Do a repair that can fix almost any problem except unique keys that are not unique (which is an extremely unlikely error with
 | |
| MyISAM
 | |
| tables)\&. If you want to recover a table, this is the option to try first\&. You should try
 | |
| \fB\-\-safe\-recover\fR
 | |
| only if
 | |
| \fBmyisamchk\fR
 | |
| reports that the table cannot be recovered using
 | |
| \fB\-\-recover\fR\&. (In the unlikely case that
 | |
| \fB\-\-recover\fR
 | |
| fails, the data file remains intact\&.)
 | |
| .sp
 | |
| If you have lots of memory, you should increase the value of
 | |
| myisam_sort_buffer_size\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: safe-recover option
 | |
| .\" safe-recover option: myisamchk
 | |
| \fB\-\-safe\-recover\fR,
 | |
| \fB\-o\fR
 | |
| .sp
 | |
| Do a repair using an old recovery method that reads through all rows in order and updates all index trees based on the rows found\&. This is an order of magnitude slower than
 | |
| \fB\-\-recover\fR, but can handle a couple of very unlikely cases that
 | |
| \fB\-\-recover\fR
 | |
| cannot\&. This recovery method also uses much less disk space than
 | |
| \fB\-\-recover\fR\&. Normally, you should repair first using
 | |
| \fB\-\-recover\fR, and then with
 | |
| \fB\-\-safe\-recover\fR
 | |
| only if
 | |
| \fB\-\-recover\fR
 | |
| fails\&.
 | |
| .sp
 | |
| If you have lots of memory, you should increase the value of
 | |
| key_buffer_size\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: set-character-set option
 | |
| .\" set-character-set option: myisamchk
 | |
| \fB\-\-set\-character\-set=\fR\fB\fIname\fR\fR
 | |
| .sp
 | |
| Change the character set used by the table indexes\&. This option was replaced by
 | |
| \fB\-\-set\-collation\fR
 | |
| in MySQL 5\&.0\&.3\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: set-collation option
 | |
| .\" set-collation option: myisamchk
 | |
| \fB\-\-set\-collation=\fR\fB\fIname\fR\fR
 | |
| .sp
 | |
| Specify the collation to use for sorting table indexes\&. The character set name is implied by the first part of the collation name\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: sort-recover option
 | |
| .\" sort-recover option: myisamchk
 | |
| \fB\-\-sort\-recover\fR,
 | |
| \fB\-n\fR
 | |
| .sp
 | |
| Force
 | |
| \fBmyisamchk\fR
 | |
| to use sorting to resolve the keys even if the temporary files would be very large\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: tmpdir option
 | |
| .\" tmpdir option: myisamchk
 | |
| \fB\-\-tmpdir=\fR\fB\fIpath\fR\fR,
 | |
| \fB\-t \fR\fB\fIpath\fR\fR
 | |
| .sp
 | |
| The path of the directory to be used for storing temporary files\&. If this is not set,
 | |
| \fBmyisamchk\fR
 | |
| uses the value of the
 | |
| TMPDIR
 | |
| environment variable\&.
 | |
| \fB\-\-tmpdir\fR
 | |
| can be set to a list of directory paths that are used successively in round\-robin fashion for creating temporary files\&. The separator character between directory names is the colon (\(lq:\(rq) on Unix and the semicolon (\(lq;\(rq) on Windows, NetWare, and OS/2\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: unpack option
 | |
| .\" unpack option: myisamchk
 | |
| \fB\-\-unpack\fR,
 | |
| \fB\-u\fR
 | |
| .sp
 | |
| Unpack a table that was packed with
 | |
| \fBmyisampack\fR\&.
 | |
| .RE
 | |
| .SH "OTHER MYISAMCHK OPTIONS"
 | |
| .PP
 | |
| \fBmyisamchk\fR
 | |
| supports the following options for actions other than table checks and repairs:
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: analyze option
 | |
| .\" analyze option: myisamchk
 | |
| \fB\-\-analyze\fR,
 | |
| \fB\-a\fR
 | |
| .sp
 | |
| 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
 | |
| \fBmyisamchk \-\-description \-\-verbose \fR\fB\fItbl_name\fR\fR
 | |
| command or the
 | |
| SHOW INDEX FROM \fItbl_name\fR
 | |
| statement\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: block-search option
 | |
| .\" block-search option: myisamchk
 | |
| \fB\-\-block\-search=\fR\fB\fIoffset\fR\fR,
 | |
| \fB\-b \fR\fB\fIoffset\fR\fR
 | |
| .sp
 | |
| Find the record that a block at the given offset belongs to\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: description option
 | |
| .\" description option: myisamchk
 | |
| \fB\-\-description\fR,
 | |
| \fB\-d\fR
 | |
| .sp
 | |
| Print some descriptive information about the table\&. Specifying the
 | |
| \fB\-\-verbose\fR
 | |
| option once or twice produces additional information\&. See
 | |
| the section called \(lqOBTAINING TABLE INFORMATION WITH MYISAMCHK\(rq\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: set-auto-increment[ option
 | |
| .\" set-auto-increment[ option: myisamchk
 | |
| \fB\-\-set\-auto\-increment[=\fR\fB\fIvalue\fR\fR\fB]\fR,
 | |
| \fB\-A[\fR\fB\fIvalue\fR\fR\fB]\fR
 | |
| .sp
 | |
| Force
 | |
| AUTO_INCREMENT
 | |
| numbering for new records to start at the given value (or higher, if there are existing records with
 | |
| AUTO_INCREMENT
 | |
| values this large)\&. If
 | |
| \fIvalue\fR
 | |
| is not specified,
 | |
| AUTO_INCREMENT
 | |
| numbers for new records begin with the largest value currently in the table, plus one\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: sort-index option
 | |
| .\" sort-index option: myisamchk
 | |
| \fB\-\-sort\-index\fR,
 | |
| \fB\-S\fR
 | |
| .sp
 | |
| Sort the index tree blocks in high\-low order\&. This optimizes seeks and makes table scans that use indexes faster\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| .\" myisamchk: sort-records option
 | |
| .\" sort-records option: myisamchk
 | |
| \fB\-\-sort\-records=\fR\fB\fIN\fR\fR,
 | |
| \fB\-R \fR\fB\fIN\fR\fR
 | |
| .sp
 | |
| Sort records according to a particular index\&. This makes your data much more localized and may speed up range\-based
 | |
| SELECT
 | |
| and
 | |
| ORDER BY
 | |
| operations that use this index\&. (The first time you use this option to sort a table, it may be very slow\&.) To determine a table\*(Aqs index numbers, use
 | |
| SHOW INDEX, which displays a table\*(Aqs indexes in the same order that
 | |
| \fBmyisamchk\fR
 | |
| sees them\&. Indexes are numbered beginning with 1\&.
 | |
| .sp
 | |
| If keys are not packed (PACK_KEYS=0), they have the same length, so when
 | |
| \fBmyisamchk\fR
 | |
| sorts and moves records, it just overwrites record offsets in the index\&. If keys are packed (PACK_KEYS=1),
 | |
| \fBmyisamchk\fR
 | |
| 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\&.)
 | |
| .RE
 | |
| .SH "OBTAINING TABLE INFORMATION WITH MYISAMCHK"
 | |
| .\" table description: myisamchk
 | |
| .\" tables: information
 | |
| .\" examples: myisamchk output
 | |
| .\" myisamchk: example output
 | |
| .PP
 | |
| To obtain a description of a
 | |
| MyISAM
 | |
| table or statistics about it, use the commands shown here\&. The output from these commands is explained later in this section\&.
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| \fBmyisamchk \-d \fR\fB\fItbl_name\fR\fR
 | |
| .sp
 | |
| Runs
 | |
| \fBmyisamchk\fR
 | |
| in
 | |
| \(lqdescribe mode\(rq
 | |
| to produce a description of your table\&. If you start the MySQL server with external locking disabled,
 | |
| \fBmyisamchk\fR
 | |
| may report an error for a table that is updated while it runs\&. However, because
 | |
| \fBmyisamchk\fR
 | |
| does not change the table in describe mode, there is no risk of destroying data\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| \fBmyisamchk \-dv \fR\fB\fItbl_name\fR\fR
 | |
| .sp
 | |
| Adding
 | |
| \fB\-v\fR
 | |
| runs
 | |
| \fBmyisamchk\fR
 | |
| in verbose mode so that it produces more information about the table\&. Adding
 | |
| \fB\-v\fR
 | |
| a second time produces even more information\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| \fBmyisamchk \-eis \fR\fB\fItbl_name\fR\fR
 | |
| .sp
 | |
| Shows only the most important information from a table\&. This operation is slow because it must read the entire table\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| \fBmyisamchk \-eiv \fR\fB\fItbl_name\fR\fR
 | |
| .sp
 | |
| This is like
 | |
| \fB\-eis\fR, but tells you what is being done\&.
 | |
| .RE
 | |
| .PP
 | |
| The
 | |
| \fItbl_name\fR
 | |
| argument can be either the name of a
 | |
| MyISAM
 | |
| table or the name of its index file, as described in
 | |
| \fBmyisamchk\fR(1)\&. Multiple
 | |
| \fItbl_name\fR
 | |
| arguments can be given\&.
 | |
| .PP
 | |
| Suppose that a table named
 | |
| person
 | |
| has the following structure\&. (The
 | |
| MAX_ROWS
 | |
| table option is included so that in the example output from
 | |
| \fBmyisamchk\fR
 | |
| shown later, some values are smaller and fit the output format more easily\&.)
 | |
| .sp
 | |
| .if n \{\
 | |
| .RS 4
 | |
| .\}
 | |
| .nf
 | |
| 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;
 | |
| .fi
 | |
| .if n \{\
 | |
| .RE
 | |
| .\}
 | |
| .PP
 | |
| Suppose also that the table has these data and index file sizes:
 | |
| .sp
 | |
| .if n \{\
 | |
| .RS 4
 | |
| .\}
 | |
| .nf
 | |
| \-rw\-rw\-\-\-\-  1 mysql  mysql  9347072 Aug 19 11:47 person\&.MYD
 | |
| \-rw\-rw\-\-\-\-  1 mysql  mysql  6066176 Aug 19 11:47 person\&.MYI
 | |
| .fi
 | |
| .if n \{\
 | |
| .RE
 | |
| .\}
 | |
| .PP
 | |
| Example of
 | |
| \fBmyisamchk \-dvv\fR
 | |
| output:
 | |
| .sp
 | |
| .if n \{\
 | |
| .RS 4
 | |
| .\}
 | |
| .nf
 | |
| 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
 | |
| .fi
 | |
| .if n \{\
 | |
| .RE
 | |
| .\}
 | |
| .PP
 | |
| Explanations for the types of information
 | |
| \fBmyisamchk\fR
 | |
| produces are given here\&.
 | |
| \(lqKeyfile\(rq
 | |
| refers to the index file\&.
 | |
| \(lqRecord\(rq
 | |
| and
 | |
| \(lqrow\(rq
 | |
| are synonymous, as are
 | |
| \(lqfield\(rq
 | |
| and
 | |
| \(lqcolumn\&.\(rq
 | |
| .PP
 | |
| The initial part of the table description contains these values:
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| MyISAM file
 | |
| .sp
 | |
| Name of the
 | |
| MyISAM
 | |
| (index) file\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Record format
 | |
| .sp
 | |
| The format used to store table rows\&. The preceding examples use
 | |
| Fixed length\&. Other possible values are
 | |
| Compressed
 | |
| and
 | |
| Packed\&. (Packed
 | |
| corresponds to what
 | |
| SHOW TABLE STATUS
 | |
| reports as
 | |
| Dynamic\&.)
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Chararacter set
 | |
| .sp
 | |
| The table default character set\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| File\-version
 | |
| .sp
 | |
| Version of
 | |
| MyISAM
 | |
| format\&. Currently always 1\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Creation time
 | |
| .sp
 | |
| When the data file was created\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Recover time
 | |
| .sp
 | |
| When the index/data file was last reconstructed\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Status
 | |
| .sp
 | |
| Table status flags\&. Possible values are
 | |
| crashed,
 | |
| open,
 | |
| changed,
 | |
| analyzed,
 | |
| optimized keys, and
 | |
| sorted index pages\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Auto increment key,
 | |
| Last value
 | |
| .sp
 | |
| The key number associated the table\*(Aqs
 | |
| AUTO_INCREMENT
 | |
| column, and the most recently generated value for this column\&. These fields do not appear if there is no such column\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Data records
 | |
| .sp
 | |
| The number of rows in the table\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Deleted blocks
 | |
| .sp
 | |
| How many deleted blocks still have reserved space\&. You can optimize your table to minimize this space\&. See
 | |
| Section\ \&7.6.4, \(lqMyISAM Table Optimization\(rq\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Datafile parts
 | |
| .sp
 | |
| For dynamic\-row format, this indicates how many data blocks there are\&. For an optimized table without fragmented rows, this is the same as
 | |
| Data records\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Deleted data
 | |
| .sp
 | |
| How many bytes of unreclaimed deleted data there are\&. You can optimize your table to minimize this space\&. See
 | |
| Section\ \&7.6.4, \(lqMyISAM Table Optimization\(rq\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Datafile pointer
 | |
| .sp
 | |
| The size of the data file pointer, in bytes\&. It is usually 2, 3, 4, or 5 bytes\&. Most tables manage with 2 bytes, but this cannot be controlled from MySQL yet\&. For fixed tables, this is a row address\&. For dynamic tables, this is a byte address\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Keyfile pointer
 | |
| .sp
 | |
| The size of the index file pointer, in bytes\&. It is usually 1, 2, or 3 bytes\&. Most tables manage with 2 bytes, but this is calculated automatically by MySQL\&. It is always a block address\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Max datafile length
 | |
| .sp
 | |
| How long the table data file can become, in bytes\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Max keyfile length
 | |
| .sp
 | |
| How long the table index file can become, in bytes\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Recordlength
 | |
| .sp
 | |
| How much space each row takes, in bytes\&.
 | |
| .RE
 | |
| .PP
 | |
| The
 | |
| table description
 | |
| part of the output includes a list of all keys in the table\&. For each key,
 | |
| \fBmyisamchk\fR
 | |
| displays some low\-level information:
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Key
 | |
| .sp
 | |
| This key\*(Aqs number\&. This value is shown only for the first column of the key\&. If this value is missing, the line corresponds to the second or later column of a multiple\-column key\&. For the table shown in the example, there are two
 | |
| table description
 | |
| lines for the second index\&. This indicates that it is a multiple\-part index with two parts\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Start
 | |
| .sp
 | |
| Where in the row this portion of the index starts\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Len
 | |
| .sp
 | |
| How long this portion of the index is\&. For packed numbers, this should always be the full length of the column\&. For strings, it may be shorter than the full length of the indexed column, because you can index a prefix of a string column\&. The total length of a multiple\-part key is the sum of the
 | |
| Len
 | |
| values for all key parts\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Index
 | |
| .sp
 | |
| Whether a key value can exist multiple times in the index\&. Possible values are
 | |
| unique
 | |
| or
 | |
| multip\&.
 | |
| (multiple)\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Type
 | |
| .sp
 | |
| What data type this portion of the index has\&. This is a
 | |
| MyISAM
 | |
| data type with the possible values
 | |
| packed,
 | |
| stripped, or
 | |
| empty\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Root
 | |
| .sp
 | |
| Address of the root index block\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Blocksize
 | |
| .sp
 | |
| The size of each index block\&. By default this is 1024, but the value may be changed at compile time when MySQL is built from source\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Rec/key
 | |
| .sp
 | |
| This is a statistical value used by the optimizer\&. It tells how many rows there are per value for this index\&. A unique index always has a value of 1\&. This may be updated after a table is loaded (or greatly changed) with
 | |
| \fBmyisamchk \-a\fR\&. If this is not updated at all, a default value of 30 is given\&.
 | |
| .RE
 | |
| .PP
 | |
| The last part of the output provides information about each column:
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Field
 | |
| .sp
 | |
| The column number\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Start
 | |
| .sp
 | |
| The byte position of the column within table rows\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Length
 | |
| .sp
 | |
| The length of the column in bytes\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Nullpos,
 | |
| Nullbit
 | |
| .sp
 | |
| For columns that can be
 | |
| NULL,
 | |
| MyISAM
 | |
| stores
 | |
| NULL
 | |
| values as a flag in a byte\&. Depending on how many nullable columns there are, there can be one or more bytes used for this purpose\&. The
 | |
| Nullpos
 | |
| and
 | |
| Nullbit
 | |
| values, if nonempty, indicate which byte and bit contains that flag indicating whether the column is
 | |
| NULL\&.
 | |
| .sp
 | |
| The position and number of bytes used to store
 | |
| NULL
 | |
| flags is shown in the line for field 1\&. This is why there are six
 | |
| Field
 | |
| lines for the
 | |
| person
 | |
| table even though it has only five columns\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Type
 | |
| .sp
 | |
| The data type\&. The value may contain any of the following descriptors:
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| constant
 | |
| .sp
 | |
| All rows have the same value\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| no endspace
 | |
| .sp
 | |
| Do not store endspace\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| no endspace, not_always
 | |
| .sp
 | |
| Do not store endspace and do not do endspace compression for all values\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| no endspace, no empty
 | |
| .sp
 | |
| Do not store endspace\&. Do not store empty values\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| table\-lookup
 | |
| .sp
 | |
| The column was converted to an
 | |
| ENUM\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| zerofill(\fIN\fR)
 | |
| .sp
 | |
| The most significant
 | |
| \fIN\fR
 | |
| bytes in the value are always 0 and are not stored\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| no zeros
 | |
| .sp
 | |
| Do not store zeros\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| always zero
 | |
| .sp
 | |
| Zero values are stored using one bit\&.
 | |
| .RE
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Huff tree
 | |
| .sp
 | |
| The number of the Huffman tree associated with the column\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Bits
 | |
| .sp
 | |
| The number of bits used in the Huffman tree\&.
 | |
| .RE
 | |
| .PP
 | |
| The
 | |
| Huff tree
 | |
| and
 | |
| Bits
 | |
| fields are displayed if the table has been compressed with
 | |
| \fBmyisampack\fR\&. See
 | |
| \fBmyisampack\fR(1), for an example of this information\&.
 | |
| .PP
 | |
| Example of
 | |
| \fBmyisamchk \-eiv\fR
 | |
| output:
 | |
| .sp
 | |
| .if n \{\
 | |
| .RS 4
 | |
| .\}
 | |
| .nf
 | |
| 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
 | |
| \fI*** LOTS OF ROW NUMBERS DELETED ***\fR
 | |
| 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)
 | |
| .fi
 | |
| .if n \{\
 | |
| .RE
 | |
| .\}
 | |
| .PP
 | |
| \fBmyisamchk \-eiv\fR
 | |
| output includes the following information:
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Data records
 | |
| .sp
 | |
| The number of rows in the table\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Deleted blocks
 | |
| .sp
 | |
| How many deleted blocks still have reserved space\&. You can optimize your table to minimize this space\&. See
 | |
| Section\ \&7.6.4, \(lqMyISAM Table Optimization\(rq\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Key
 | |
| .sp
 | |
| The key number\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Keyblocks used
 | |
| .sp
 | |
| What percentage of the keyblocks are used\&. When a table has just been reorganized with
 | |
| \fBmyisamchk\fR, the values are very high (very near theoretical maximum)\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Packed
 | |
| .sp
 | |
| MySQL tries to pack key values that have a common suffix\&. This can only be used for indexes on
 | |
| CHAR
 | |
| and
 | |
| VARCHAR
 | |
| columns\&. For long indexed strings that have similar leftmost parts, this can significantly reduce the space used\&. In the preceding example, the second key is 40 bytes long and a 97% reduction in space is achieved\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Max levels
 | |
| .sp
 | |
| How deep the B\-tree for this key is\&. Large tables with long key values get high values\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Records
 | |
| .sp
 | |
| How many rows are in the table\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| M\&.recordlength
 | |
| .sp
 | |
| The average row length\&. This is the exact row length for tables with fixed\-length rows, because all rows have the same length\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Packed
 | |
| .sp
 | |
| MySQL strips spaces from the end of strings\&. The
 | |
| Packed
 | |
| value indicates the percentage of savings achieved by doing this\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Recordspace used
 | |
| .sp
 | |
| What percentage of the data file is used\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Empty space
 | |
| .sp
 | |
| What percentage of the data file is unused\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Blocks/Record
 | |
| .sp
 | |
| Average number of blocks per row (that is, how many links a fragmented row is composed of)\&. This is always 1\&.0 for fixed\-format tables\&. This value should stay as close to 1\&.0 as possible\&. If it gets too large, you can reorganize the table\&. See
 | |
| Section\ \&7.6.4, \(lqMyISAM Table Optimization\(rq\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Recordblocks
 | |
| .sp
 | |
| How many blocks (links) are used\&. For fixed\-format tables, this is the same as the number of rows\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Deleteblocks
 | |
| .sp
 | |
| How many blocks (links) are deleted\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Recorddata
 | |
| .sp
 | |
| How many bytes in the data file are used\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Deleted data
 | |
| .sp
 | |
| How many bytes in the data file are deleted (unused)\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Lost space
 | |
| .sp
 | |
| If a row is updated to a shorter length, some space is lost\&. This is the sum of all such losses, in bytes\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Linkdata
 | |
| .sp
 | |
| When the dynamic table format is used, row fragments are linked with pointers (4 to 7 bytes each)\&.
 | |
| Linkdata
 | |
| is the sum of the amount of storage used by all such pointers\&.
 | |
| .RE
 | |
| .SH "MYISAMCHK MEMORY USAGE"
 | |
| .\" memory usage: myisamchk
 | |
| .PP
 | |
| Memory allocation is important when you run
 | |
| \fBmyisamchk\fR\&.
 | |
| \fBmyisamchk\fR
 | |
| uses no more memory than its memory\-related variables are set to\&. If you are going to use
 | |
| \fBmyisamchk\fR
 | |
| on very large tables, you should first decide how much memory you want it to use\&. The default is to use only about 3MB to perform repairs\&. By using larger values, you can get
 | |
| \fBmyisamchk\fR
 | |
| to operate faster\&. For example, if you have more than 512MB RAM available, you could use options such as these (in addition to any other options you might specify):
 | |
| .sp
 | |
| .if n \{\
 | |
| .RS 4
 | |
| .\}
 | |
| .nf
 | |
| shell> \fBmyisamchk \-\-myisam_sort_buffer_size=256M \e\fR
 | |
|            \fB\-\-key_buffer_size=512M \e\fR
 | |
|            \fB\-\-read_buffer_size=64M \e\fR
 | |
|            \fB\-\-write_buffer_size=64M \&.\&.\&.\fR
 | |
| .fi
 | |
| .if n \{\
 | |
| .RE
 | |
| .\}
 | |
| .PP
 | |
| Using
 | |
| \fB\-\-myisam_sort_buffer_size=16M\fR
 | |
| is probably enough for most cases\&.
 | |
| .PP
 | |
| Be aware that
 | |
| \fBmyisamchk\fR
 | |
| uses temporary files in
 | |
| TMPDIR\&. If
 | |
| TMPDIR
 | |
| points to a memory file system, out of memory errors can easily occur\&. If this happens, run
 | |
| \fBmyisamchk\fR
 | |
| with the
 | |
| \fB\-\-tmpdir=\fR\fB\fIpath\fR\fR
 | |
| option to specify a directory located on a file system that has more space\&.
 | |
| .PP
 | |
| When performing repair operations,
 | |
| \fBmyisamchk\fR
 | |
| also needs a lot of disk space:
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Twice the size of the data file (the original file and a copy)\&. This space is not needed if you do a repair with
 | |
| \fB\-\-quick\fR; in this case, only the index file is re\-created\&.
 | |
| \fIThis space must be available on the same file system as the original data file\fR, as the copy is created in the same directory as the original\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| Space for the new index file that replaces the old one\&. The old index file is truncated at the start of the repair operation, so you usually ignore this space\&. This space must be available on the same file system as the original data file\&.
 | |
| .RE
 | |
| .sp
 | |
| .RS 4
 | |
| .ie n \{\
 | |
| \h'-04'\(bu\h'+03'\c
 | |
| .\}
 | |
| .el \{\
 | |
| .sp -1
 | |
| .IP \(bu 2.3
 | |
| .\}
 | |
| When using
 | |
| \fB\-\-recover\fR
 | |
| or
 | |
| \fB\-\-sort\-recover\fR
 | |
| (but not when using
 | |
| \fB\-\-safe\-recover\fR), you need space on disk for sorting\&. This space is allocated in the temporary directory (specified by
 | |
| TMPDIR
 | |
| or
 | |
| \fB\-\-tmpdir=\fR\fB\fIpath\fR\fR)\&. The following formula yields the amount of space required:
 | |
| .sp
 | |
| .if n \{\
 | |
| .RS 4
 | |
| .\}
 | |
| .nf
 | |
| (\fIlargest_key\fR + \fIrow_pointer_length\fR) * \fInumber_of_rows\fR * 2
 | |
| .fi
 | |
| .if n \{\
 | |
| .RE
 | |
| .\}
 | |
| .sp
 | |
| You can check the length of the keys and the
 | |
| \fIrow_pointer_length\fR
 | |
| with
 | |
| \fBmyisamchk \-dv \fR\fB\fItbl_name\fR\fR
 | |
| (see
 | |
| the section called \(lqOBTAINING TABLE INFORMATION WITH MYISAMCHK\(rq)\&. The
 | |
| \fIrow_pointer_length\fR
 | |
| and
 | |
| \fInumber_of_rows\fR
 | |
| values are the
 | |
| Datafile pointer
 | |
| and
 | |
| Data records
 | |
| values in the table description\&. To determine the
 | |
| \fIlargest_key\fR
 | |
| value, check the
 | |
| Key
 | |
| lines in the table description\&. The
 | |
| Len
 | |
| column indicates the number of bytes for each key part\&. For a multiple\-column index, the key size is the sum of the
 | |
| Len
 | |
| values for all key parts\&.
 | |
| .RE
 | |
| .PP
 | |
| If you have a problem with disk space during repair, you can try
 | |
| \fB\-\-safe\-recover\fR
 | |
| instead of
 | |
| \fB\-\-recover\fR\&.
 | |
| .SH "COPYRIGHT"
 | |
| .br
 | |
| .PP
 | |
| Copyright \(co 1997, 2013, Oracle and/or its affiliates. All rights reserved.
 | |
| .PP
 | |
| This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 | |
| .PP
 | |
| This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
 | |
| .PP
 | |
| You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or see http://www.gnu.org/licenses/.
 | |
| .sp
 | |
| .SH "SEE ALSO"
 | |
| For more information, please refer to the MySQL Reference Manual,
 | |
| which may already be installed locally and which is also available
 | |
| online at http://dev.mysql.com/doc/.
 | |
| .SH AUTHOR
 | |
| Oracle Corporation (http://dev.mysql.com/).
 |