大きなテーブルで多くの行を削除するのに問題があります。2m 行のテーブルから 200 ~ 300k 行を削除しようとしています。
私のPHPスクリプトは次のようなものです
for($i=0;$i<1000;$i++){
$query="delete from record_table limit 100";
$queryres=mysql_query($query) or die(mysql_error());;
}
これは、100k レコードを削除するために 1000 回実行して一度に 100 行を削除するスクリプトの単なる例です。
ただし、PHP スクリプトは永久に実行され続け、何も返されないようです。しかし、コマンド ラインからクエリを実行しようとすると、削除に 5 ~ 6 分ほどかかりますが、問題なく削除されているようです。
PHPスクリプトがクエリを実行するのを妨げている何かが他にありますか? 1つのクエリで100kを削除しようとしましたが、結果も同じです。
私が本当に実行したかったクエリは、「DELETE FROM table WHERE (timeinlong BETWEEN 'timefrom' AND 'timeto'」です。
timeinlong 列にはインデックスが付けられます。