REPAIR TABLE
修复了表损坏问题,例如打开文件句柄计数、可变长度数据行的解析等。OPTIMIZE TABLE
只需复制表以删除未使用的空间。如果表是MyISAM,ANALYZE TABLE
也会为了查询优化器执行更新索引统计。如果表是 InnoDB,
ANALYZE TABLE
则绕过。您可以让 mysqld 自动检查并修复所有 MyISAM 表。
事实上,MySQL 5.0 认证学习指南,第 30.5 节,第 444,445 页指出:
可以指示 MySQL 服务器自动检查和修复 MyISAM 表。启用自动修复后,服务器会在打开每个 MyISAM 表时检查该表,以查看该表是否在上次使用时正确关闭并且未标记为需要修复。如果表不正常,服务器会修复它。
要启用自动 MyISAM 表维护,请使用 --myisam-recover 选项启动服务器,该选项值可以包含以下一个或多个值的逗号分隔列表:
- DEFAULT 用于默认检查。
- BACKUP 告诉服务器备份任何必须更改的表。
- FORCE 会导致执行表恢复,即使它会导致多行数据丢失。
- QUICK 执行快速恢复:跳过没有因删除或更新而产生空洞的表。
例如,要告诉服务器对发现有问题的 MyISAM 表执行强制恢复但对其更改的任何表进行备份,您可以将以下几行放在选项文件中:
[mysqld] myisam-recover=FORCE,BACKUP
您还可以创建一个名为的文件/root/StartUp.sql
并将REPAIR TABLE
您想要的命令放入其中。然后加入init-file=/root/StartUp.sql
到/etc/my.cnf
和重启MySQL触发的init脚本。
归档时间: |
|
查看次数: |
5059 次 |
最近记录: |