16/08/2026
لما Request بتصير أبطأ من الطبيعي، أول شي ممكن يخطر ببالك هو الـ code.
بس بكتير حالات المشكلة بتكون أبسط وأوضح:
Queries عم تتكرر بدون داعي
N+1 Queries
عم تجيب columns أو records أكتر من المطلوب
Dataset كبيرة عم تتحمل دفعة وحدة
لهيك أول خطوة لازم تكون Measurement مو التخمين.
مثلاً في Laravel فيك تراقب الـ Queries:
DB::enableQueryLog();
$queries = DB::getQueryLog();
وكمان Laravel Debugbar مفيد جداً بالـ development حتى تشوف عدد الـ Queries ووقت تنفيذها.
من أشهر المشاكل هي N+1 Query Problem.
بدل ما تجيب Users وبعدين تعمل Query لكل User حتى تجيب Orders:
$users = User::with('orders')->get();
استخدم Eager Loading وخفف عدد الـ Queries.
نفس الشي بالنسبة للداتا نفسها.
إذا محتاج id و name فقط:
$users = User::select('id', 'name')->get();
وإذا عندك آلاف records، لا تحملهم كلهم:
$users = User::paginate(25);
بالجزء الجاي: رح احكيلكم كيف منعرف إذا الـ Query نفسها بطيئة، وشو دور Indexes و EXPLAIN بالموضوع.