استعلام يسبب 400% حمل CPU

كان لدى العميل تفعيل إشارات @all في الدردشة، مع قناتين تضم كل منهما 16 ألف مستخدم. كان ذلك ممتعًا!
بعد 19 إشارة للجميع، قاموا بإيقافها بسرعة مرة أخرى. بعد 12 ساعة، كان نظامهم (القوي) لا يزال يعاني من حمل وحدة معالجة مركزية مرتفع.

تم حل المشكلة عن طريق مسح 320 ألف سجل مسيء من جدول الإشارات

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

لكننا كنا لا نزال في حيرة من أمرنا لماذا تسبب هذا في الكثير من المشاكل.
كان لا يزال هناك عدد من الاستعلامات من هذا الاستعلام قيد التشغيل.

نظرًا لأن الصفوف كانت قد اختفت بالفعل، لم يعطِ شرح الاستعلام نتائج جيدة، ولكن من الواضح أنه كان يقوم بعمل شاق. جميع الفهارس في مكانها.

إعجاب واحد (1)