相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  设置 MyISAM 表维护计划

9.6.5 设置 MyISAM 表维护计划

定期执行表检查是一个好主意,而不是等到出现问题才检查。检查和修复 MyISAM 表的一种方法是使用 CHECK TABLEREPAIR TABLE 语句。请参见 第 15.7.3 节,“表维护语句”.

检查表另一种方法是使用 myisamchk。为了维护目的,可以使用 myisamchk -s。选项 -s(代表 --silent)将使 myisamchk 以静默模式运行,仅在发生错误时打印消息。

启用自动 MyISAM 表检查也是一个好主意。例如,每当机器在更新过程中重启时,通常需要检查每个可能受影响的表,然后再进一步使用它。(这些是 预期崩溃的表。) 要使服务器自动检查 MyISAM 表,请使用 myisam_recover_options 系统变量启动它。请参见 第 7.1.8 节,“服务器系统变量”.

还应在正常系统运行期间定期检查表。例如,可以运行一个 cron 作业,使用 crontab 文件中的类似以下内容的行,每周检查一次重要表

35 0 * * 0 /path/to/myisamchk --fast --silent /path/to/datadir/*/*.MYI

这会打印有关崩溃表的的信息,以便您可以根据需要检查和修复它们。

首先,每天晚上对所有在过去 24 小时内更新过的表执行 myisamchk -s。当您发现问题很少发生时,可以将检查频率降低到每周一次或更少。

通常,MySQL 表需要很少的维护。如果对具有动态大小行的 MyISAM 表(具有 VARCHARBLOBTEXT 列的表)执行大量更新,或者表中有许多已删除的行,您可能需要定期对表进行碎片整理/回收空间。可以使用 OPTIMIZE TABLE 对相关表进行操作。或者,如果可以停止 mysqld 服务器一段时间,更改到数据目录的位置,并在服务器停止时使用以下命令

$> myisamchk -r -s --sort-index --myisam_sort_buffer_size=16M */*.MYI