本节介绍的选项可用于由myisamchk执行的任何类型的表维护操作 。本节后面的部分介绍仅适用于特定操作的选项,如表格检查或修复。
--help
,-?
显示帮助信息并退出。选项按操作类型分组。
--HELP
,-H
显示帮助信息并退出。选项显示在一个列表中。
--debug=
,debug_options
-#
debug_options
编写一个调试日志。一个典型的
debug_options
字符串是 。默认是 。d:t:o,
file_name
d:t:o,/tmp/myisamchk.trace
--defaults-extra-file=
file_name
在全局选项文件之后读取此选项文件,但在用户选项文件之前(在Unix上)。如果文件不存在或无法访问,则会发生错误。
file_name
如果作为相对路径名而非完整路径名给出,则相对于当前目录进行解释。只使用给定的选项文件。如果文件不存在或无法访问,则会发生错误。
file_name
如果作为相对路径名而非完整路径名给出,则相对于当前目录进行解释。不仅要阅读常用选项组,还要阅读具有常用名称和后缀的组
str
。例如, myisamchk通常会读取该[myisamchk]
组。如果--defaults-group-suffix=_other
给出选项,myisamchk也读取该[myisamchk_other]
组。不要阅读任何选项文件。如果由于从选项文件读取未知选项而导致程序启动失败,
--no-defaults
可用于防止读取它们。例外是
.mylogin.cnf
在任何情况下读取文件(如果存在)。这允许以比使用命令行更安全的方式来指定密码,即使在--no-defaults
使用时 也是如此。(.mylogin.cnf
由mysql_config_editor实用程序创建, 请参见 第4.6.7节“ mysql_config_editor - MySQL配置实用程序”。)打印程序名称以及从选项文件中获取的所有选项。
--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变量及其默认值可以使用myisamchk --help进行检查:
myisam_sort_buffer_size
当按键通过排序键修复时使用,这是您使用时的正常情况--recover
。 sort_buffer_size
是一个被废弃的同义词 myisam_sort_buffer_size
。
key_buffer_size
用于--extend-check
通过将键逐行插入表中来检查表的时候(或者在执行普通插入操作时),或者在检查键时进行修复。在以下情况下使用通过关键缓冲区进行修复:
对键进行排序所需的临时文件将比直接创建密钥文件时大两倍。当你有一个大的键值这是常有的事
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.5节,“服务器系统变量”和 第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
。这些语句由服务器执行,它知道要使用的正确的全文参数值。本文由学什么技术好网翻译