以下选项可用于 myisamchk 的任何类型的表维护操作。以下部分描述了特定操作的选项,例如表检查或修复。
-
--help
,-?
Command-Line Format --help
显示帮助信息并退出。选项按操作类型分组。
-
--HELP
,-H
Command-Line Format --HELP
显示帮助信息并退出。选项以单个列表形式呈现。
-
--debug=
,debug_options
-#
debug_options
Command-Line Format --debug[=debug_options]
Type 字符串 Default Value d:t:o,/tmp/myisamchk.trace
写入调试日志。典型的
debug_options
字符串是d:t:o,
。默认值是file_name
d:t:o,/tmp/myisamchk.trace
。只有在 MySQL 使用
WITH_DEBUG
选项构建时,才可使用此选项。 Oracle 提供的 MySQL 发行二进制文件 不 使用此选项。 -
--defaults-extra-file=
file_name
Command-Line Format --defaults-extra-file=file_name
Type 文件名 在全局选项文件之后(在 Unix 上)但在用户选项文件之前读取此选项文件。如果文件不存在或不可访问,将发生错误。如果
file_name
不是绝对路径名,则相对于当前目录进行解释。有关此选项和其他选项文件选项的更多信息,请参阅 第 6.2.2.3 节,“命令行选项影响选项文件处理”。
-
Command-Line Format --defaults-file=file_name
Type 文件名 仅使用给定的选项文件。如果文件不存在或不可访问,将发生错误。如果
file_name
不是绝对路径名,则相对于当前目录进行解释。有关此选项和其他选项文件选项的更多信息,请参阅 第 6.2.2.3 节,“命令行选项影响选项文件处理”。
-
Command-Line Format --defaults-group-suffix=str
Type 字符串 不仅读取通常的选项组,还读取具有通常名称和
str
后缀的组。例如,myisamchk 通常读取[myisamchk]
组。如果使用--defaults-group-suffix=_other
,则 myisamchk 也读取[myisamchk_other]
组。有关此选项和其他选项文件选项的更多信息,请参阅 第 6.2.2.3 节,“命令行选项影响选项文件处理”。
-
Command-Line Format --不使用默认值
不要读取任何选项文件。如果程序启动失败是由于从选项文件中读取未知选项,
--不使用默认值
可以用于防止它们被读取。唯一的例外是,如果存在,
.mylogin.cnf
文件总是被读取。这允许在命令行上使用更安全的方式指定密码,即使使用--不使用默认值
。要创建.mylogin.cnf
,请使用 mysql_config_editor 实用程序。请参阅 第 6.6.7 节,“mysql_config_editor — MySQL 配置实用程序”。有关此选项和其他选项文件选项的更多信息,请参阅 第 6.2.2.3 节,“命令行选项影响选项文件处理”。
-
Command-Line Format --打印默认值
打印程序名称和从选项文件中获取的所有选项。
有关此选项和其他选项文件选项的更多信息,请参阅 第 6.2.2.3 节,“命令行选项影响选项文件处理”。
-
--沉默
,-s
Command-Line Format --沉默
沉默模式。仅在错误发生时写入输出。你可以使用
-s
两次 (-ss
) 使 myisamchk 变得非常沉默。 -
--详细
,-v
Command-Line Format --详细
详细模式。打印程序执行的更多信息。这可以与
-d
和-e
一起使用。使用-v
多次 (-vv
,-vvv
) 以获取更多输出。 -
--版本
,-V
Command-Line Format --版本
显示版本信息并退出。
-
--等待
,-w
Command-Line Format --等待
Type 布尔值 Default Value false
如果表被锁定,而不是终止错误,而是等待直到表被解锁后继续。如果您正在运行 mysqld,外部锁定禁用,表只能被另一个 myisamchk 命令锁定。
您也可以使用 --
语法设置以下变量:var_name
=value
Variable | Default 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
或当键被逐行插入表中时(类似于正常插入时)。通过键缓冲区修复在以下情况下使用:
-
您使用
--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
在 第 7.1.8 节,“服务器系统变量” 和 第 10.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 修复表格,如下所示:
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
。这些语句由服务器执行,服务器知道使用正确的全文参数值。