我正在编写一个脚本,该脚本将是一个 cronjob,它将查看数据库中的表并修复任何需要它的表。它们是 mysql 数据库中的 myisam 表。我的问题,有什么理由myisamchk
在命令行和REPAIR TABLE
查询语法上使用语法?
在 myisam 文档页面 http://dev.mysql.com/doc/refman/5.0/en/myisamchk.html上,他们提供了这种方法来修复所有需要它的表
myisamchk --silent --force --fast --update-state \
--key_buffer_size=64M --sort_buffer_size=64M \
--read_buffer_size=1M --write_buffer_size=1M \
/path/to/datadir/*/*.MYI
会不会有与使用不同的结果
REPAIR TABLE tablename
在我所有的桌子上?我会用 php 以编程方式完成它并最终得到类似(伪代码)
$tables=query("SELECT table from information_schema.tables where table_schema='myDBName'");
foreach($tables as $table)
{
$result=query("REPAIR TABLE ".$table);
}
尽管对以一种或另一种方式进行操作的实用性有任何意见,但实际的最终结果会有所不同吗?谢谢。
如果需要,我可以提供工作(非伪)php 代码,但我认为没有必要。我使用伪代码的原因是在工作中我们使用自己的包装器进行数据库访问。