MYSQLのテーブル最適化をPHPから自動でプギャーッ!

WFSの話。

週間記録的なレコードをCRONで毎週削除する用にしているのだが、数万件を一気に削除するのでフリー領域というかオーバーヘッドががっつり出来てしまっていた。
で、削除バッチのあとに最適化することにした。
だいたいこんなかんじ。

//データベースに接続しておく
(略)

//テーブルの最適化を実施
$query = “show table status where Data_free > 0”;
$result = mysql_query( $query );
if($result){
if( mysql_num_rows( $result ) ){
while( $ary= mysql_fetch_array( $result ) ){
if( $strTables ){
$strTables .= “,”;
}
$strTables .= $ary[Name];
}

$query = “OPTIMIZE TABLE {$strTables}”;
$result = mysql_query( $query );
if($result){
print “table optimizes {$strTables}”;
}
}
}

ではまた。