本节中描述的选项可用于myisamchk执行的任何类型的表维护操作 。此后的各节介绍仅与特定操作有关的选项,例如表检查或修复。
–help, -?
显示帮助消息并退出。选项按操作类型分组。
–HELP, -H
显示帮助消息并退出。选项显示在单个列表中。
–debug=debug_options, -# debug_options
编写调试日志。典型的 debug_options字符串是 。默认值为 。 d:t:o,file_named:t:o,/tmp/myisamchk.trace
仅当MySQL是使用构建的时,此选项才可用 WITH_DEBUG。Oracle提供的MySQL版本二进制文件不是 使用此选项构建的。
–defaults-extra-file=file_name
在全局选项文件之后但在用户选项文件之前(在Unix上)读取此选项文件。如果文件不存在或无法访问,则发生错误。 file_name如果给出为相对路径名而不是完整路径名,则相对于当前目录解释。
有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节“影响选项文件处理的命令行选项”。
–defaults-file=file_name
仅使用给定的选项文件。如果文件不存在或无法访问,则发生错误。 file_name如果给出为相对路径名而不是完整路径名,则相对于当前目录解释。
有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节“影响选项文件处理的命令行选项”。
–defaults-group-suffix=str
不仅阅读常规选项组,而且阅读具有常规名称和后缀的组 str。例如, myisamchk通常读取该 [myisamchk]组。如果 --defaults-group-suffix=_other 给出选项,myisamchk也会读取该 [myisamchk_other]组。
有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节“影响选项文件处理的命令行选项”。
–no-defaults
不要读取任何选项文件。如果由于从选项文件中读取未知选项而导致程序启动失败,–no-defaults则可以使用该选项 来防止读取它们。
唯一的例外是,.mylogin.cnf 在所有情况下都会读取该文件(如果存在)。这样,即使–no-defaults使用密码,也可以通过比命令行更安全的方式指定密码 。(.mylogin.cnf由mysql_config_editor实用程序创建 。请参见 第4.6.7节“ mysql_config_editor -MySQL配置实用程序”。)
有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节“影响选项文件处理的命令行选项”。
–print-defaults
打印程序名称及其从选项文件中获得的所有选项。
有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节“影响选项文件处理的命令行选项”。
–silent, -s
静音模式。仅在发生错误时才写输出。您可以使用-s两次(-ss)使 myisamchk非常安静。
–verbose, -v
详细模式。打印有关程序功能的更多信息。可以与-d和 一起使用-e。使用-v多次(-vv,-vvv)可获得更多输出。
–version, -V
显示版本信息并退出。
–wait, -w
如果表已锁定,则不要终止于错误,而要等到表被解锁后再继续。如果在禁用外部锁定的情况下运行mysqld,则只能由另一个myisamchk命令锁定该表 。
您还可以使用 语法设置以下变量 : --var_name=value
变量 默认值
decode_bits 9
ft_max_word_len 版本相关
ft_min_word_len 4
ft_stopword_file 内置清单
key_buffer_size 523264
myisam_block_size 1024
myisam_sort_key_blocks 16
read_buffer_size 262136
sort_buffer_size 2097144
sort_key_blocks 16
stats_method nulls_unequal
write_buffer_size 262136
可以使用myisamchk --help检查 可能的myisamchk变量及其默认值:
myisam_sort_buffer_size通过对键进行排序来修复键时使用,这是使用时的正常情况–recover。 sort_buffer_size是不推荐使用的同义词 myisam_sort_buffer_size。
key_buffer_size当您使用来检查表–extend-check 或通过将键逐行插入表中来修复键(例如进行普通插入时)时,使用。在以下情况下,将通过密钥缓冲区进行修复:
您使用–safe-recover。
对密钥进行排序所需的临时文件将比直接创建密钥文件时大两倍。这是常有的事,当你有一个大的键值 CHAR, VARCHAR或 TEXT列,因为排序操作需要存储完整的键值因为它的收益。如果您有很多临时空间,并且可以通过排序强制myisamchk进行修复,则可以使用该–sort-recover 选项。
与使用排序相比,通过键缓冲区进行修复所需的磁盘空间要少得多,但速度也要慢得多。
如果要更快地修复,请将key_buffer_size和 myisam_sort_buffer_size变量设置为 可用内存的25%左右。您可以将两个变量都设置为较大的值,因为一次只能使用其中一个。
myisam_block_size 是用于索引块的大小。
stats_method 给定选项NULL时,影响如何 处理值以进行索引统计信息收集–analyze。它的作用类似于 myisam_stats_method系统变量。欲了解更多信息,请参阅的描述 myisam_stats_method在 第5.1.8节,“服务器系统变量”和 第8.3.8,“InnoDB和MyISAM索引统计集合”。
ft_min_word_len并 ft_max_word_len指出表上FULLTEXT索引 的最小和最大字长MyISAM。 ft_stopword_file命名停用词文件。这些需要在以下情况下设置。
如果使用myisamchk进行修改表索引的操作(例如修复或分析),则 FULLTEXT除非使用其他特殊说明,否则将使用最小和最大字长以及停用词文件的默认全文参数值来重建索引。这可能会导致查询失败。
发生问题是因为这些参数仅由服务器知道。它们不存储在MyISAM 索引文件中。为了避免这个问题,如果你已经修改了最小或最大字长或服务器停止字文件,指定相同ft_min_word_len, ft_max_word_len和 ft_stopword_file值 myisamchk的,你使用 的mysqld。例如,如果将最小字长设置为3,则可以使用myisamchk修复表, 如下所示:
shell> myisamchk --recover --ft_min_word_len=3 tbl_name.MYI
为确保myisamchk和服务器对全文参数使用相同的值,可以将每个参数放在选项文件的[mysqld]和 [myisamchk]部分中:
[mysqld]
ft_min_word_len=3
[myisamchk]
ft_min_word_len=3
到使用替代myisamchk的是使用REPAIR TABLE, ANALYZE TABLE, OPTIMIZE TABLE,或 ALTER TABLE。这些语句由服务器执行,服务器知道要使用的适当的全文参数值。




