# 7.6.5 设置 MyISAM 表维护计划

定期执行表检查而不是等待问题发生是个好主意。检查和维修的一种方法MyISAM表与检查表维修台陈述。看第 13.7.3 节,“表维护语句”.

检查表的另一种方法是使用迈萨姆奇克.出于维护目的,您可以使用myisamchk -s.这-s选项(简称- 无声) 原因迈萨姆奇克以静默模式运行,仅在发生错误时打印消息。

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

您还应该在系统正常运行期间定期检查您的表格。例如,您可以运行cron每周检查一次重要表的工作,在crontab文件:

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

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

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

通常,MySQL 表几乎不需要维护。如果您正在执行许多更新MyISAM具有动态大小行的表(具有VARCHAR,斑点, 要么文本列)或具有许多已删除行的表,您可能希望不时对表进行碎片整理/回收空间。您可以使用优化表在有问题的桌子上。或者,如果您可以停止mysqld服务器一段时间,将位置更改为数据目录并在服务器停止时使用此命令:

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