شرح صفوف ومحتوى الفقرة
يحمل العمود الأخير Extra في مخرجات EXPLAIN رسائل تشخيصية بالغة الأهمية قد تقلب تقييمك لأداء الاستعلام رأساً على عقب. إليك أهم أربع عبارات يجب على كل مطور التمييز بينها:
Using index(ممتاز جداً): تعني أن الاستعلام نُفّذ بالكامل من أوراق الفهرس الثانوي (Covering Index) دون الحاجة لقراءة أي صفحة من الجدول الأساسي!Using index condition(جيد جداً): تفعيل ميزة دفع شرط الفهرس (Index Condition Pushdown - ICP) لتصفية الصفوف داخل محرك InnoDB قبل إرسالها لطبقة الخادم.Using filesort(تحذير أداء): تعني أن الفهرس لم يكن مرتباً حسب جملةORDER BY، فاضطر MySQL لإجراء خوارزمية فرز إضافية في الذاكرة (Sort Buffer) أو على القرص إذا كان الحجم كبيراً.Using temporary(تحذير أداء): تعني أن MySQL أنشأ جدولاً مؤقتاً داخلياً لتنفيذGROUP BYأوDISTINCTأوUNION.
SQL
EXPLAIN SELECT order_id, customer_id, total_amount FROM orders WHERE customer_id = 102 ORDER BY total_amount DESC;