انتقل إلى محتوى الدرس

Subquery vs JOIN Performance مقارنة أداء EXISTS والربط

تعلّم الاستعلامات الفرعية المترابطة ومعامل EXISTS في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
8 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

يقارن الجدول التالي بين أنماط الاستعلامات المترابطة ومعامل EXISTS والربط في MySQL 8:

نمط الاستعلامهل يكرر صفوف الجدول الخارجي؟الأمان مع قيم NULL الداخليةالسيناريو الهندسي الأمثل
WHERE EXISTS (SELECT 1 ...)لا يكرر الصفوف أبداًآمن 100% مع NULLفحص وجود سجلات فرعية دون الحاجة لعرض أعمدة الجدول الداخلي
WHERE NOT EXISTS (SELECT 1 ...)لا يكرر الصفوف أبداًآمن 100% مع NULLاستخراج السجلات التي لا تملك أي ارتباط في الجدول الفرعي
WHERE col NOT IN (SELECT ...)لا يكرر الصفوفيفشل ويرجع 0 صفوف بوجود NULLيُتجنب مع الاستعلامات الفرعية التي قد تحتوي على NULL
INNER JOIN / LEFT JOINيكرر الصف بعدد التطابقات الفرعيةآمن في شرط ONعند الحاجة لعرض أو تجميع أعمدة من كلا الجدولين معاً

ملخص الدرس: فرّقنا في هذا الدرس بين الاستعلام الفرعي المستقل والمترابط، وقارنّا كل صف بمتوسط فئته، واستخدمنا EXISTS للفحص السريع، ووضحنا سبب تفوق NOT EXISTS على NOT IN بوجود القيم الفارغة.
الخطوة التالية والدرس القادم: في الدرس القادم سندرس «التعبيرات الجدولية الشائعة WITH والاستعلامات العودية في MySQL».

خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

توفر الاستعلامات المترابطة ومعاملا EXISTS وNOT EXISTS مقارنات دقيقة داخل المجموعات وفحصاً آمناً للوجود والغياب دون تكرار الصفوف. الخطوة التالية: انتقل إلى درس «التعبيرات الجدولية الشائعة WITH والاستعلامات العودية في MySQL».