TGViewer
| کانال توسعه‌دهندگان PHP | | کانال توسعه‌دهندگان PHP | @developixphp · 1.68K subscribers
Post #102 630
در نمونه‌کد بالا در بخش کد اشتباه برای گرفتن پست‌ها و کامنت‌ها در یک حلقه روی هر پست، یک Query جداگانه به دیتابیس ارسال شده است (مشکل معروف به N+1 Queries). این کار در اسکیل بالا فشار زیادی به دیتابیس وارد می‌کند و زمان پاسخ‌گویی را به‌شدت بالا می‌برد.

در کد صحیح با استفاده از with('comments.user') همه‌ی داده‌های مورد نیاز به‌صورت Eager Loading در چند Query محدود واکشی می‌شوند. به این ترتیب تعداد Queryها کاهش پیدا کرده، Latency پایین می‌آید و Performance در سناریوهایی مثل لیست کردن پست‌های صفحه‌ی اصلی یا Dashboard با تعداد زیاد رکورد به‌مراتب بهتر می‌شود.

اگر در پروژه‌ی PHP/Laravel خود با Modelهای مرتبط زیاد سروکار دارید، به جای دسترسی تنبلی (Lazy Loading) داخل حلقه، از Eager Loading استفاده کنید تا هم Queryهای غیرضروری حذف شوند و هم در Loadهای بالا دچار افت شدید سرعت و فشار روی دیتابیس نشوید.

🔖 #PHP #پی_اچ_پی

👤 Developix

💎 Channel: @DevelopixPHP
More from @developixphp
  1. Sep 26, 2026این کد موقع اجرا چه خروجی‌ای می‌ده و مشکلش کجاست؟ 🔖 #PHP #پی_اچ_پی 👤 Developix 💎 Channe…
  2. Sep 25, 2026🔥 پکیج: قراردادهای ترجمه سیمفونی اگر کد PHP را برای چندزبانگی می‌نویسید، بهتر است منطق بر…
  3. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
  4. Sep 11, 2026ارسال ایمیل تأیید ثبت‌نام، بازیابی رمز عبور یا نوتیفیکیشن سفارش، تقریباً توی هر پروژه‌ PHP…
  5. Sep 10, 2026برنامه نویسی سوکت در PHP بخش اول عبارت دیگر در ارتباط های غیر سوکت برای ارسال یک پالس از س…
  6. Aug 31, 2026🔥 پکیج: استاندارد PSR-11 برای Container استاندارد PSR-11 فقط یه interface مشترک برای Cont…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →