通知テーブルには、Amazon IODSに1000 IOPSのホストである約1億行が含まれており、1か月より古い行を削除したいと思います。
実行するとDELETE FROM NOTIFICATION WHERE CreatedAt < DATE_SUB(CURDATE(), INTERVAL 30 day);
、すべてのIOPSが取得され、プロセスに数時間かかり、「ロック待機タイムアウトが超過しました。トランザクションを再起動してください」という理由で、多くの新しいエントリを挿入できません。
ここで説明する方法を実行しようとしました:http : //mysql.rjweb.org/doc.php/deletebig ただし、増分IDの代わりにUUIDを使用しています。
挿入/更新される新しいデータに影響を与えずにそれらの行を削除するための正しい効率的な方法は何ですか?
あなたは正しいypercubeです、私はそれを修正しました。指摘してくれてありがとう!
—
Tianyi Cong
小さなチャンク内のレコードを削除、挿入操作には影響しません、私はループでそれを試みたが、それは時間未満で7000万レコードを削除終了rathishkumar.in/2017/12/...
—
Rathish