#### 4.6.4.1 myisamchk 常规选项

[](<>)[](<>)

本节中描述的选项可用于由以下人员执行的任何类型的表维护操作[**迈萨姆奇克**](myisamchk.html).这一节之后的部分描述了仅与特定操作相关的选项，例如表检查或修复。

-   [](<>) [`- 帮助`](myisamchk-general-options.html#option_myisamchk_help),`-？`

    [](<>)[](<>)

    显示帮助信息并退出。选项按操作类型分组。

-   [](<>) [`- 帮助`](myisamchk-general-options.html#option_myisamchk_HELP),`-H`

    [](<>)[](<>)

    显示帮助信息并退出。选项显示在一个列表中。

-   [](<>) [`--调试=*`调试选项`*`](myisamchk-general-options.html#option_myisamchk_debug),`-# *`调试选项`*`

    [](<>)[](<>)

    编写调试日志。一个典型的*`调试选项`*字符串是`d:t:o,*`文件名`*`.默认是`d:t:o,/tmp/myisamchk.trace`.

    仅当 MySQL 是使用[`WITH_DEBUG`](source-configuration-options.html#option_cmake_with_debug).Oracle 提供的 MySQL 发行版二进制文件是*不是*使用此选项构建。

-   [](<>) [`--defaults-extra-file=*`文件名`*`](myisamchk-general-options.html#option_myisamchk_defaults-extra-file)

    [](<>)[](<>)

    在全局选项文件之后但（在 Unix 上）在用户选项文件之前读取此选项文件。如果文件不存在或无法访问，则会发生错误。如果*`文件名`*不是绝对路径名，它是相对于当前目录解释的。

    有关此选项和其他选项文件选项的更多信息，请参阅[第 4.2.2.3 节，“影响选项文件处理的命令行选项”](option-file-options.html).

-   [](<>) [`--默认文件=*`文件名`*`](myisamchk-general-options.html#option_myisamchk_defaults-file)

    [](<>)[](<>)

    仅使用给定的选项文件。如果文件不存在或无法访问，则会发生错误。如果*`文件名`*不是绝对路径名，它是相对于当前目录解释的。

    有关此选项和其他选项文件选项的更多信息，请参阅[第 4.2.2.3 节，“影响选项文件处理的命令行选项”](option-file-options.html).

-   [](<>) [`--defaults-group-suffix=*`字符串`*`](myisamchk-general-options.html#option_myisamchk_defaults-group-suffix)

    [](<>)[](<>)

    不仅可以读取通常的选项组，还可以读取具有通常名称和后缀的组*`字符串`*.例如，[**迈萨姆奇克**](myisamchk.html)通常读取`[myisamchk]`团体。如果这个选项被给出为[`--defaults-group-suffix=_other`](myisamchk-general-options.html#option_myisamchk_defaults-group-suffix),[**迈萨姆奇克**](myisamchk.html)还读取`[myisamchk_other]`团体。

    有关此选项和其他选项文件选项的更多信息，请参阅[第 4.2.2.3 节，“影响选项文件处理的命令行选项”](option-file-options.html).

-   [](<>) [`--no-defaults`](myisamchk-general-options.html#option_myisamchk_no-defaults)

    [](<>)[](<>)

    不要读取任何选项文件。如果由于从选项文件中读取未知选项而导致程序启动失败，[`--no-defaults`](myisamchk-general-options.html#option_myisamchk_no-defaults)可以用来防止它们被读取。

    唯一的例外是`.mylogin.cnf`如果文件存在，则在所有情况下都会读取文件。这允许以比在命令行上更安全的方式指定密码，即使在[`--no-defaults`](myisamchk-general-options.html#option_myisamchk_no-defaults)用来。创造`.mylogin.cnf`， 使用[**mysql\_配置\_编辑**](mysql-config-editor.html)效用。看[第 4.6.7 节，“mysql\_配置\_编辑器 — MySQL 配置实用程序”](mysql-config-editor.html).

    有关此选项和其他选项文件选项的更多信息，请参阅[第 4.2.2.3 节，“影响选项文件处理的命令行选项”](option-file-options.html).

-   [](<>) [`--打印默认值`](myisamchk-general-options.html#option_myisamchk_print-defaults)

    [](<>)[](<>)

    打印程序名称和它从选项文件中获取的所有选项。

    有关此选项和其他选项文件选项的更多信息，请参阅[第 4.2.2.3 节，“影响选项文件处理的命令行选项”](option-file-options.html).

-   [](<>) [`- 无声`](myisamchk-general-options.html#option_myisamchk_silent),`-s`

    [](<>)[](<>)

    静音模式。仅在发生错误时写入输出。您可以使用`-s`两次（`-ss`) 使[**迈萨姆奇克**](myisamchk.html)很沉默。

-   [](<>) [`--详细`](myisamchk-general-options.html#option_myisamchk_verbose),`-v`

    [](<>)[](<>)

    详细模式。打印有关程序功能的更多信息。这可以与`-d`和`-e`.采用`-v`多次 （`-vv`,`-vvv`) 以获得更多输出。

-   [](<>) [`- 版本`](myisamchk-general-options.html#option_myisamchk_version),`-V`

    [](<>)[](<>)

    显示版本信息并退出。

-   [](<>) [`- 等待`](myisamchk-general-options.html#option_myisamchk_wait),`-w`

     [](<>)[](<>)

    如果表被锁定，则不要以错误终止，而是等到表被解锁后再继续。如果你正在跑步[**mysqld**](mysqld.html)禁用外部锁定后，该表只能由另一个锁定[**迈萨姆奇克**](myisamchk.html)命令。

    您还可以通过使用设置以下变量`--*`变量名`*=*`价值`*`句法：

[](<>)[](<>)[](<>)[](<>)[](<>)[](<>)[](<>)[](<>)[](<>)[](<>)[](<>)[](<>)

| 多变的 | 默认值 |
| --- | --- |
| `解码位` | 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 |
| `读取缓冲区大小` | 262136 |
| `排序缓冲区大小` | 2097144 |
| `sort_key_blocks` | 16 |
| `stats_method` | 空值\_不等 |
| `write_buffer_size` | 262136 |

可能的[**迈萨姆奇克**](myisamchk.html)变量及其默认值可以用[**myisamchk--帮助**](myisamchk.html)：

`myisam_sort_buffer_size`在通过排序键修复键时使用，这是您使用时的正常情况[`- 恢复`](myisamchk-repair-options.html#option_myisamchk_recover).`排序缓冲区大小`是已弃用的同义词`myisam_sort_buffer_size`.

`key_buffer_size`当您检查表格时使用[`--扩展检查`](myisamchk-check-options.html#option_myisamchk_extend-check)或者当通过将键逐行插入表中来修复键时（如进行正常插入时）。在以下情况下使用通过密钥缓冲区进行修复：

-   你用[`--安全恢复`](myisamchk-repair-options.html#option_myisamchk_safe-recover).

-   对密钥进行排序所需的临时文件将是直接创建密钥文件时的两倍多。当您有较大的键值时，通常会出现这种情况[`字符`](char.html),[`VARCHAR`](char.html)， 要么[`文本`](blob.html)列，因为排序操作需要在进行时存储完整的键值。如果你有很多临时空间，你可以强制[**迈萨姆奇克**](myisamchk.html)通过排序修复，您可以使用[`--排序恢复`](myisamchk-repair-options.html#option_myisamchk_sort-recover)选项。

    通过键缓冲区进行修复比使用排序占用更少的磁盘空间，但也慢得多。

    如果您想要更快的修复速度，请将`key_buffer_size`和`myisam_sort_buffer_size`变量到大约 25% 的可用内存。您可以将这两个变量都设置为较大的值，因为一次只使用其中一个。

`myisam_block_size`是用于索引块的大小。

`stats_method`影响如何`空值`值被视为索引统计收集时[`- 分析`](myisamchk-other-options.html#option_myisamchk_analyze)给出了选项。它的作用就像`myisam_stats_method`系统变量。有关详细信息，请参阅`myisam_stats_method`在[第 5.1.8 节，“服务器系统变量”](server-system-variables.html)， 和[第 8.3.8 节，“InnoDB 和 MyISAM 索引统计信息收集”](index-statistics.html).

`ft_min_word_len`和`ft_max_word_len`指示最小和最大字长`全文`索引`MyISAM`表。`ft_stopword_file`命名停用词文件。这些需要在以下情况下进行设置。

如果你使用[**迈萨姆奇克**](myisamchk.html)执行修改表索引的操作（例如修复或分析），`全文`除非您另外指定，否则使用最小和最大字长的默认全文参数值和停用词文件重建索引。这可能导致查询失败。

出现问题是因为这些参数只有服务器知道。它们不存储在`MyISAM`索引文件。如果您修改了服务器中的最小或最大字长或停用词文件，为避免出现此问题，请指定相同的`ft_min_word_len`,`ft_max_word_len`， 和`ft_stopword_file`值到[**迈萨姆奇克**](myisamchk.html)你用来[**mysqld**](mysqld.html).例如，如果您将最小字长设置为 3，则可以使用[**迈萨姆奇克**](myisamchk.html)像这样：

```
myisamchk --recover --ft_min_word_len=3 tbl_name.MYI
```

以确保[**迈萨姆奇克**](myisamchk.html)并且服务器对全文参数使用相同的值，您可以将每一个都放在`[mysqld]`和`[myisamchk]`选项文件的部分：

```
[mysqld]
ft_min_word_len=3

[myisamchk]
ft_min_word_len=3
```

使用的替代方法[**迈萨姆奇克**](myisamchk.html)是使用[`维修台`](repair-table.html),[`分析表`](analyze-table.html),[`优化表`](optimize-table.html)， 要么[`更改表`](alter-table.html).这些语句由知道要使用的正确全文参数值的服务器执行。
