Abbiamo avuto un cliente che ha attivato le menzioni @all nella chat, con due canali da 16k utenti. È stato divertente!
Dopo 19 menzioni a tutti, l’hanno disattivata rapidamente. 12 ore dopo il loro (potente) sistema era ancora a pieno carico della CPU.
Il problema è stato risolto eliminando i 320k record incriminati dalla tabella delle menzioni
delete from chat_mentions
where chat_message_id in (
(select chat_message_id
from chat_mentions
group by chat_message_id having count(*) > 100)
);
ma eravamo ancora perplessi sul perché questo stesse causando così tanti problemi.
C’erano un certo numero di istanze di questa query ancora in esecuzione.
Poiché le righe erano già state eliminate, un explain non ha fornito buoni risultati, ma è chiaro che stava facendo un lavoro pesante. Tutti gli indici sono presenti.