Я работаю над сценарием, который будет cronjob, который будет просматривать таблицы в базе данных и восстанавливать все, что в этом нуждается. Это таблицы myisam в базе данных mysql. Мой вопрос: есть ли причина использовать синтаксис 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-код, если это необходимо, но я не думаю, что это необходимо. Причина, по которой я использую псевдокод, заключается в том, что на работе мы используем собственную оболочку для доступа к базе данных.