علیرضا ترابی
2 سال پیش توسط علیرضا ترابی مطرح شد
4 پاسخ

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

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


ثبت پرسش جدید
Sahandi81
تخصص : PHP - Laravel -JS
@sahandi81 2 سال پیش مطرح شد
2

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

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


میلاد خسروی
تخصص : برنامه نویس بامزه
@milwad 2 سال پیش مطرح شد
1

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


سهیل رضایی
@rezaesoheil 2 سال پیش مطرح شد
0

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


محمدجواد صیدی
تخصص : برنامه نویس وب
@mrjavadseydi 2 سال پیش مطرح شد
1

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


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

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