本节中描述的选项可用于 myisamchk执行的任何类型的表维护操作。这一节之后的部分描述了仅适用于特定操作的选项,例如表检查或修复。
--help
,-?
显示帮助信息并退出。选项按操作类型分组。
--HELP
,-H
显示帮助信息并退出。选项显示在一个列表中。
--debug=
,debug_options
-#
debug_options
写调试日志。典型的
debug_options
字符串是 . 默认值为 。d:t:o,
file_name
d:t:o,/tmp/myisamchk.trace
仅当 MySQL 是使用
WITH_DEBUG
. Oracle 提供的 MySQL 发布二进制文件不是 使用此选项构建的。--defaults-extra-file=
file_name
在全局选项文件之后但(在 Unix 上)在用户选项文件之前读取此选项文件。如果该文件不存在或无法访问,则会发生错误。如果
file_name
不是绝对路径名,则将其解释为相对于当前目录。有关此选项和其他选项文件选项的其他信息,请参阅第 4.2.2.3 节,“影响选项文件处理的命令行选项”。
仅使用给定的选项文件。如果该文件不存在或无法访问,则会发生错误。如果
file_name
不是绝对路径名,则将其解释为相对于当前目录。有关此选项和其他选项文件选项的其他信息,请参阅第 4.2.2.3 节,“影响选项文件处理的命令行选项”。
不仅要阅读通常的选项组,还要阅读具有通常名称和后缀
str
. 例如, myisamchk通常会读取该[myisamchk]
组。如果此选项作为 给出--defaults-group-suffix=_other
, myisamchk也会读取该[myisamchk_other]
组。有关此选项和其他选项文件选项的其他信息,请参阅第 4.2.2.3 节,“影响选项文件处理的命令行选项”。
不要读取任何选项文件。如果程序启动因从选项文件中读取未知选项而失败,
--no-defaults
可用于防止它们被读取。例外情况是
.mylogin.cnf
文件在所有情况下都会被读取(如果存在)。这允许以比在命令行上更安全的方式指定密码,即使在--no-defaults
使用 时也是如此。要创建.mylogin.cnf
,请使用 mysql_config_editor实用程序。请参阅 第 4.6.7 节,“mysql_config_editor — MySQL 配置实用程序”。有关此选项和其他选项文件选项的其他信息,请参阅第 4.2.2.3 节,“影响选项文件处理的命令行选项”。
打印程序名称和它从选项文件中获取的所有选项。
有关此选项和其他选项文件选项的其他信息,请参阅第 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
或通过将键逐行插入表中来修复键时使用(就像进行正常插入时一样)。通过key buffer修复用于以下情况:
对密钥进行排序所需的临时文件将是直接创建密钥文件时的两倍多。
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
索引文件中。如果您修改了服务器中的最小或最大字长或停用词文件,为避免出现此问题,请为myisamchk指定与用于
mysqldft_min_word_len
的相同的
ft_max_word_len
、 和
ft_stopword_file
值
。例如,如果您将最小字长设置为 3,则可以像这样使用
myisamchk修复表:
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
。这些语句由服务器执行,它知道要使用的正确全文参数值。