クライアントがチャットで @all メンションを有効にしたところ、16,000 ユーザーの 2 つのチャンネルで問題が発生しました。
19 回の @all メンションの後、すぐに無効にされました。12 時間後も、彼らの(強力な)システムは高い CPU 負荷のままでした。
問題は、メンションテーブルから 320,000 件の該当レコードを削除することで解決されました。
delete from chat_mentions
where chat_message_id in (
(select chat_message_id
from chat_mentions
group by chat_message_id having count(*) > 100)
);
しかし、なぜこれがこれほど多くの問題を引き起こしていたのか、まだ疑問でした。
このクエリ の多くのインスタンスがまだ実行されていました。
行はすでに削除されていたため、explain では良い結果が得られませんでしたが、かなりの負荷がかかっていたことは明らかです。すべてのインデックスは配置されています。