شرح صفوف ومحتوى الفقرة
كيف تتأكد برمجياً من أن استعلام SELECT يستخدم الفهرس الذي أنشأته ولا يجري فحصاً كاملاً خفياً؟ يوفر MySQL 8.4 أداة التشخيص الهندسية الأهم EXPLAIN: فعند كتابة الكلمة EXPLAIN قبل أي استعلام، يعرض لك محسّن الاستعلامات القائم على التكلفة (Cost-Based Optimizer) خطة التنفيذ المتوقعة دون إرجاع صفوف البيانات الفعلية.
تتكون مخرجات EXPLAIN الجدولية من 12 عموداً تشخيصياً، أهمها للتحليل السريع:
type: طريقة وصول المحرك لصفوف الجدول (من الأسرعconstإلى الأبطأALL).possible_keysوkey: الفهارس المرشحة مقابل الفهرس الفعلي الذي وقع عليه اختيار المحسّن.rowsوfiltered: العدد التقديري للصفوف التي سيفحصها المحرك ونسبة الصفوف المتوقع بقاؤها بعد تطبيق الشروط.Extra: تفاصيل داخلية حاسمة مثل القراءة من الفهرس فقطUsing indexأو التحذير من الفرز المكلفUsing filesort.
SQL
EXPLAIN SELECT order_id, customer_id, total_amount FROM orders WHERE customer_id = 102;