هل لارافيل بطيء؟ تحسين أداء الاستعلامات والفهارس بأمثلة
يوليو 20, 2025دليل عملي ومفصل مع أمثلة واقعية وعينات كود تسهّل عليك تفادي بطء Laravel وتحافظ على سرعة التطبيق.
1. 🧠 استدعي اللي محتاجه بس
لو بتعمل DB::table('users')->get()
هتجيب كل الأعمدة والصفوف، وده بيأثر على الأداء. الحل:
$users = DB::table('users')
->select('id', 'name', 'email')
->where('status', 'active')
->limit(50)
->get();
ولو بتحب Eloquent:
$users = User::select('id','name','email')
->where('status','active')
->take(50)
->get();
ليه؟ بنقلل استهلاك الذاكرة والبيانات المرسلة ونحسن زمن الاستجابة.
2. 🔑 استغل الفهارس صح
لو بتفلتر مثلاً بـ customer_id
أو status
، لازم تضيف index:
Schema::table('orders', function (Blueprint $table) {
$table->index('customer_id');
$table->index(['status', 'created_at']); // فهرس مركّب
});
وبعدين php artisan migrate
. ضيف الفهارس اللي فعلاً بتفيد في WHERE
أو JOIN
أو ORDER BY
. ومتاديش أكتر من اللازم عشان التحديثات تبقى بطية.
3. 🛠️ راقِب واستكشف الأداء
في التطوير:
DB::enableQueryLog();
// بعد الاستعلام:
dd(DB::getQueryLog());
جرب أدوات زي Laravel Debugbar
و Telescope
، واستخدم EXPLAIN
عشان تتأكد إن الفهرس بيستخدم:
EXPLAIN SELECT * FROM orders WHERE customer_id = 5;
4. ✅ جدول فحص سريع للتنفيذ
- اختار الأعمدة اللي بتحتاجها بس باستخدام
select()
. - حدد عدد الصفوف بـ
limit()
أوtake()
. - حط فهارس على أعمدة الـ WHERE و JOIN.
- استعمل Debugbar أو Telescope للفحص.
- ابعد عن N+1 عن طريق الـ eager loading.
5. ✨ نصايح متقدمة
التحميل المبكّر:
$posts = Post::with('comments')->get();
التعامل مع جداول كبيرة:
Post::chunk(100, function($posts) {
foreach ($posts as $post) {
// اعمل اللي محتاجه...
}
});
كاش للاستعلامات الثقيلة:
$posts = Cache::remember('all_posts', 60, function() {
return Post::with('comments')->get();
});
استخدم SQL خالص للطلبات المعقدة:
$rows = DB::select('SELECT * FROM orders WHERE status = ?', ['active']);
راقب كل استعلام:
DB::listen(function($query){
Log::info("SQL: {$query->sql} - Bindings: " . implode(',', $query->bindings) . " - Time: {$query->time}ms");
});
6. 🚀 لتطوير الأداء أكتر
- شغّل
OPcache
في PHP. - نفّذ
php artisan config:cache
وroute:cache
. - اختار كاش سريع زي Redis أو Memcached.
- فكر في نشر التطبيق على أكثر من سيرفر.
- راقب الأداء باستمرار وعدّل مبكراً وتكرارياً.
بتركيزك على استعلامات نظيفة، وفهارس ذكية، ومراقبة صحيحة – تطبيق Laravel بتاعك هيفضل سريع وحتى مع نمو البيانات.
المدونة
Laravel 12.21.0 – تحديث ذكي لتسهيل الاستعلامات والتحقق الصارم للبيانات
أغسطس 03, 2025
أصدرت Laravel النسخة 12.21.0 بمزايا برمجية هامة تساهم في كتابة كود أنظف وأسهل في الصيانة. من أهمها دالة whereValueBetween() الجديدة، بالإضافة إلى...
نظام طوابير Laravel واستخدام Supervisor في الإنتاج
يوليو 01, 2025
🚀 نظام Queue & Jobs في Laravel هناخدك خطوة خطوة من أول إنشاء الجداول لحد ما تشغّل الطوابير في Production عن طريق Supervisor. الخطوة 1: إنشاء...
الدليل الكامل لتحديثات ECMAScript 2025 للمطورين
يوليو 06, 2025
📘 شرح تفصيلي لتحديثات ECMAScript 2025 جميع مميزات ECMAScript 2025، مع أمثلة عملية وفهم ليه الميزة دي مهمة لأي مبرمج واجهة أمامية. ١. مجموعات مسما...
مكونات واجهة المستخدم والتفاعل الأساسية في React Native
يوليو 01, 2025
مكونات واجهة المستخدم والتفاعل الأساسية في React Native React Native بتوفرلك مجموعة قوية من المكونات الجاهزة اللي تقدر تستخدمها لبناء تطبيقات موباي...
أحدث مميزات ECMAScript 2025
يونيو 30, 2025
أحدث مميزات ECMAScript 2025 في 25 يونيو 2025، تم اعتماد ES2025 رسميًا. الإضافات الجاية هتسهل عليك كتابة الكود: 1. 📦 Import Attributes و JSON Module...
أهم تحديثات Laravel و PHP لكتابة كود أنظف وأسرع
أغسطس 17, 2025
Laravel Global Scopes: Automatic Query Filtering Eloquent الأهمية: فرض فلترة ثابتة على جميع استعلامات الموديل (مثل Soft Deletes) دون تكرا...
