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

Eager Loading Performance Summary ملخص التحميل المسبق والأداء

تشخيص مشكلة الأداء N+1 Query الناتجة عن التحميل الكسول وحلها جذرياً عبر التحميل المسبق بالدالة with ومنع التحميل الكسول.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

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

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

يُعد القضاء على مشكلة استعلامات N+1 عبر التحميل المسبق أهم خطوة لتحسين أداء قواعد البيانات في التطوير اليومي بتطبيقات Laravel. يضمن الجمع بين استدعاء دالة with صراحة في المتحكمات وتفعيل preventLazyLoading أثناء التطوير ثبات عدد الاستعلامات مهما تضخم حجم البيانات.

وجه المقارنة الهندسيالأسلوب اليدوي أو غير المحسنمعيار Laravel 12 الحديث
الدوران على العلاقاتقراءة اسم المؤلف مباشرة بعد Post::all مما يولد N+1 استعلاماًالتحميل المسبق عبر Post::with('user:id,name') باستعلامين فقط
العلاقات المتداخلةإطلاق سلسلة استعلامات كسولة متتالية عبر ثلاثة جداولاستخدام الصيغة النقطية with('comments.author') لتحميلها معاً
نموذج أب محمل مسبقاًكتابة استعلام منفصل لجلب الأبناء بمعرف الأب يدوياًاستدعاء دالة loadMissing على الكائن المحمل عند الحاجة
اكتشاف أخطاء الأداءانتظار شكاوى البطء في خادم الإنتاج الحي بعد النشرتفعيل Model::preventLazyLoading في بيئة التطوير المحلية
PHP
$posts = Post::with(['user:id,name', 'tags'])
    ->withCount('comments')
    ->latest()
    ->get();
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

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

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

أتقنت في هذا الدرس حول «التحميل المسبق وحل مشكلة استعلامات N Plus 1 في Eloquent» مفاهيم التحميل الكسول ومشكلة استعلامات N1، والتحميل المسبق للعلاقات بدالة With، والتحميل المتداخل وتحديد الأعمدة وفق معايير Laravel 12 الحديثة.

الخطوة التالية والدرس القادم

انتقل الآن إلى الدرس التالي «ربط النماذج بالمسارات وترقيم الصفحات في Eloquent» للبناء التراكمي على ما تعلمته.