𝗠𝗮𝘀𝘁𝗲𝗿𝗶𝗻𝗴 𝗟𝗮𝗿𝗮𝘃𝗲𝗹 𝗣𝗲𝗿𝗳𝗼𝗿𝗺𝗮𝗻𝗰𝗲 آپ کو تیز رفتار ویب ایپلی کیشنز کی ضرورت ہے۔ سست ایپلی کیشنز صارفین کو مایوس کرتی ہیں اور آپ کے کاروبار کو نقصان پہنچاتی ہیں۔ "N+1 query problem" آپ کی Laravel ایپلی کیشنز کو سست کر سکتی ہے۔ لیکن Laravel کے پاس اس کا ایک حل ہے: eager loading۔
یہ تکنیک آپ کو with() میتھڈ میں مہارت حاصل کرنے میں مدد دیتی ہے۔ آپ سیکھیں گے کہ اپنی ایپلی کیشنز کو تیز اور موثر کیسے رکھا جائے۔
آئیے ایک مثال دیکھتے ہیں۔ آپ کے پاس ایک بلاگنگ پلیٹ فارم ہے۔ ہر پوسٹ ایک مصنف (author) سے تعلق رکھتی ہے۔ آپ پوسٹس کی ایک فہرست دکھانا چاہتے ہیں جس میں ہر پوسٹ کے ساتھ اس کا مصنف بھی ہو۔
ایک عام طریقہ یہ ہے کہ پہلے تمام پوسٹس حاصل کی جائیں، پھر ہر پوسٹ کے مصنف کو حاصل کیا جائے۔ اس کے نتیجے میں ڈیٹا بیس کی بہت سی کوئریز (queries) ہوتی ہیں۔
اگر آپ کے پاس 100 پوسٹس ہیں، تو یہ کوڈ 101 ڈیٹا بیس کوئریز کرتا ہے۔ یہی "N+1 query problem" ہے۔ یہ اضافی بوجھ (overhead) پیدا کرتا ہے اور آپ کی ایپ کو سست کر دیتا ہے۔
with() میتھڈ اس مسئلے کو حل کرتا ہے۔ یہ ایک یا دو کوئریز میں تمام متعلقہ ماڈلز حاصل کر لیتا ہے۔
آپ اسے اس طرح استعمال کر سکتے ہیں:
$posts = App\Models\Post::with('author')->get();
یہ کوڈ دو کوئریز میں تمام پوسٹس اور ان کے مصنفین حاصل کرتا ہے۔
آپ ایک سے زیادہ ریلیشن شپ (relationships) بھی لوڈ کر سکتے ہیں:
$posts = App\Models\Post::with(['author', 'category'])->get();
یا ریلیشن شپ کے اندر ریلیشن شپ لوڈ کریں:
$posts = App\Models\Post::with('author.profile')->get();
تیز رفتار Laravel ایپلی کیشنز بنانے کے لیے eager loading کلیدی حیثیت رکھتی ہے۔ یہ N+1 query problem کو ختم کرتی ہے اور ڈیٹا بیس کوئریز کو کم کرتی ہے۔
اپنی ایپ کی کارکردگی (performance) کو بہتر بنانے کے لیے with() میتھڈ کا استعمال کریں۔
Source: https://dev.to/prabashanadev/mastering-laravel-performance-a-deep-dive-into-eager-loading-22l0