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


MySQL 9.0 参考手册  /  ...  /  设置 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