だから、私は約8Mレコードのログテーブルを持っています。プログラミング エラーのため、同じ日付内に会社の複数のレコードが存在することが起こりました。今、必要なのは、最新(最大IDを持つ)を除く同じ日付の各会社のこのログからすべてのレコードを削除することです。削除するレコード数は約 300K。
私が試した最速で最も簡単なことはこれです
delete from indexing_log where id not in (
select max(id)
from indexing_log
group by company_id,
"date"
)
しかし、このクエリは本番サーバー (何らかの理由で ssd ドライブがない) で膨大な時間 (約 3 日) を費やしています。私は知っているすべての方法を試しましたが、アドバイスが必要です。どうすれば速くなりますか?
更新セロリタスクを介してバケツで行うことにしました。