자체적으로 만든 스크립트를 이용해서 테이블별로 백업을 하면서 테이블 체크를 하는데
mysqlcheck 란 실행 화일을 cron에다 등록 시켜서 해도 상관 없겠다.
$backup_db = array("db1","db2")
$optimize =1;
foreach($backup_db AS $dbName)
{
 echo "\n==========  $dbName ==========\n";
 // DB
 $cmd="mysql -uroot -p".DB_PW." $dbName -e\"show tables\" ";
 exec($cmd,$tableArr);
 // 테이블
 foreach($tableArr As $val)
 {
   if(strstr($val,"+")) continue;
   if(strstr($val,"Tables_in_".$dbName)) continue;
   if(ereg("([a-zA-Z0-9_])+",$val,$regs))
   {
     $tableName=trim($regs[0]); 
   }
   else
    continue;
// 필요 없는 건 걸러내고 테이블 이름만 취한다. 
  
  if($optimize)
  { 
   $opt_exe = "mysql -uroot -p".DB_PW."  $dbName  -e\"optimize table device.$tableName\" ";
   exec($opt_exe,$output);
  }
  $dateYMD= date("Y-m-d");
  $last_line=system("mysqldump -uroot -p".DB_PW."  --extended-insert=FALSE --add-drop-table  --create-options --disable-keys --add-locks --skip-opt  --no-create-db  --default-character-set=euckr  --set-charset -n -t \"$dbName\" $tableName > $backupDir/$dateYMD/{$tableName}.sql");
} //전체루프 
mysql -uroot -p암호 -e"optimize table tablename" 이런식으로 테이블 최적화 하고 php 스크립트를 cron에다 등록 시켜 놓는다.
다음과 같이 유틸리티를 써서 하는게 편하겠다. 
으로 하면 2시에 인덱스 복구, 최적화,분석 까지 --auto-repair 면 잘못 된 테이블 복구 까지 자동으로 해준다.