MySQL 大量データ削除:千万行を効率的に削除する方法
MySQLでは、DELETE文とLIMITキーワードを組み合わせて大量のデータを一括削除することができます。一度にすべてのデータを削除することによるパフォーマンス問題やデータベースのロックを回避するためです。
たとえば、表の最初の1000万行のデータを削除するには、次のステートメントを使用できます:
DELETE FROM table_name LIMIT 10000000;
この操作は表から最初の1000万件のデータを削除します。削除するデータがそれ以上の場合は、同様のステートメントを複数回実行し、すべてのデータが削除されるまで、毎回一定数のデータを削除してください。
TRUNCATE TABLE文を使用して表内の全データを削除し、残したいデータだけを再挿入する方法も考えられます。これは一括でデータを削除するので通常はデータの一つ一つを削除するよりも効率的ですが、TRUNCATE TABLE文は表内の全データを削除するため、注意が必要です。