Performance du Chat mention mailer

Nous avons eu un client qui a activé les mentions @all dans le chat, avec deux canaux de 16k utilisateurs. C’était amusant !
Après 19 mentions à tous, ils l’ont rapidement désactivé à nouveau. 12 heures plus tard, leur système (robuste) était toujours en charge CPU élevée.

Le problème a été résolu en supprimant les 320k enregistrements fautifs de la table des mentions

delete from chat_mentions 
where chat_message_id in (
  (select chat_message_id 
   from chat_mentions 
   group by chat_message_id having count(*) > 100)
);

mais nous étions encore perplexes quant à la raison pour laquelle cela causait autant de problèmes.
Il y avait un certain nombre d’instances de cette requête encore en cours d’exécution.

Comme les lignes avaient déjà disparu, un explain n’a pas donné de bons résultats, mais il est clair que cela causait un travail acharné. Tous les index sont en place.

3 messages ont été fusionnées dans un sujet existant : Requête causant une charge CPU de 400 %