راکت
حل شده

کوئری های با پردازش سنگین در لاراول

4 پاسخ

سلام به دوستان عزیز. خسته نباشید
یک موضوعی که جدیدا در اون به چالش خوردم بحث پیاده سازی پنل آنالیز برای کارمون هستش. تا داده های موجود در سایتمون رو به همراه اطلاعات استفاده کاربران رو در اون نمایش بدم.
حالا فرض کنید مدیر صفحه آنالیز و نمودار هارو میخواد ببینه. در حینی که صفحه داره لود میشه، کوئری های سنگینی روی دیتابیس زده میشه تا تمام اطلاعات موجود در دیتابیس رو گرداوری کنه و در قالب نمودار یا جدول به مدیر نمایش بده.
حالا که سایت رو روی سرور مجازی آپلود کردم میبینم که در بعضی از صفحات آنالیز، به من ارور محدودیت رم میده. و اصلا صفحه رو بالا نمیاره.
میخواستم ببینم به طور کلی برای پردازش های سنگین در لاراول و کوئری هایی که قراره تمامی اطلاعات دیتابیس شمارو تحلیل کنن، از چه تکنیک یا استراتژی های استفاده می کنید، که صفحه به بهترین شکل به مدیر نمایش داده شود. ممنون میشم دوستان تجربشونو به اشتراک بزارن.

ثبت پرسش جدید

پاسخ‌ها

4
Sahandi81
Sahandi81
@sahandi81

تخصص: PHP - Laravel -JS

بهترین پاسخ

سلام
سعی کن کمتر از اکوئنت استفاده کنی و کوئری هات رو خودت بنویسی.
از لاراول دیباگر استفاده کن برای بهبود بخشیدن به کوئری هات.
اگر انالیزت ممکنه زیاد تغییر نداشته باشه در هربار رفلش کردن حتما از کش لاراول استفاده کن.

اگر مموری موجود داری داخل php.ini اضافه کن اگر هم نداری باید تهیه کنی.
لزوما همیشه مشکل از کد نیست اگر اطلاعاتت زیادی سنگینه

میلاد خسروی
میلاد خسروی
@milwad

تخصص: برنامه نویس بامزه

سلام خسته نباشید
ببین چند تا مبحث
اولش که تو سعی کنی تا حد امکان کوئری سبک بزنی و فشار نیاری و همه دیتا لود نکنی
دومیش اینکه سمت فرانتت خیلی کنترل کنی
سوم اینکه تو میتونی با استفاده از فریم ورک های فرانت بیای برای هر بخش که بخواد لود بشه مثل کامنت های اینستاگرام وقتی رفت و نگاه کرد همون موقع یه درخواست به سرور بزنه و لود نکنه و همرو یه جا لود نکنه

سهیل رضایی
سهیل رضایی
@rezaesoheil

سلام ببین اگر محدودیت رم برات اتفاق میفته معمولا به این دلیله که شاید مدل های زیادی دارن ایجاد میشن و داخل رم قرار میگیرن.
اگر روی کالکشن هایی که از دیتابیس گرفتی داری لوپ میزنی یا از متد های کلاس Collection استفاده میکنی بهتره که از مفهوم LazyCollection استفاده کنی. اینطوری در زمان iteration روی مدل هات فقط یک مدل داخل رم بارگذاری میشه و این مسئله باعث میشه مصرف رمت به شدت پایین بیاد.
در ضمن با توجه به کاری که داری میکنی سعی کن یک سری پردازش ها و گروه بندی ها و فیلتر ها رو توسط کوئری های دیتابیست بزنی بعد از PHP برای پردازش های بیشتر استفاده کنی.
این لینک رو مطالعه کن

شاید پاسخ شما همین‌جا باشد

محمدجواد صیدی
محمدجواد صیدی
@mrjavadseydi

تخصص: برنامه نویس وب

سلام
راه حلی که به نظر من میرسه استفاده از کش و صف هست
میتونین پردازش رو داخل صف بزارید و اگر در هر لحظه تغییر نمیکنه کش کنید
کدتون رو تا حد ممکن بهینه کنید ،‌تعداد مدل هایی که فراخوانی میشه رو بررسی کنید روی مصرف رم خیلی مهم هست
ترجیحا با laravel debuge bar بررسی کن تمام اطلاعاتی که نیاز داری رو بهت میده

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام