6
30,000,000行のテーブルでDELETEコマンドが完了しない
私はデータベースを継承しており、クリーンアップと高速化を目指しています。私は、30,000,000行を含むテーブルを持っています。その多くは、プログラマーに代わってエラーが原因で挿入されたジャンクデータです。最適化された新しいインデックスを追加する前に、テーブルをMyISAMからInnoDBに変換し、ジャンクデータを含む多くの行を削除しようとしています。 データベースはMySQL 5.0であり、サーバーへのルートアクセス権があります。最初にこれらのコマンドをAdminerで実行し、次にphpMyAdminで実行しましたが、どちらも同じ結果になりました。 私が実行しているコマンドは、 DELETE FROM `tablename` WHERE `columnname` LIKE '-%' 基本的に、ダッシュで始まるこの列のすべてを削除します-。 約3〜5分間実行され、プロセスリストを表示すると消えます。 それから走ります SELECT * FROM `tablename` WHERE `columnname` LIKE '-%' そして何百万もの行を返します。 削除ステートメントが完了しないのはなぜですか? PS、MySQL 5.0が古くなっていることに気付いています。私は、DBをMySQL 5.6 w InnoDB(おそらくMariaDB 10 w XtraDB)に移行する作業を行っていますが、それが起こるまでは、DBをそのまま使用して答えを探しています。 - 編集が削除されました。回答を参照してください。