💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱۱ Abolfazlkhanlar
کوئری‌های تکراری زیاد هنگام جمع تعداد لایک‌ها و دیس لایک ها
جامعه لاراول ایجاد شده در ۱۵ مرداد ۱۴۰۳
با سلام و خسته نباشید هنگامی که می‌خوهیم جمع تعداد الیم‌ها و دیس لایک‌ها رو بگریم در برای هر لایک یا دیس لایک یک کوئری زده میشه و تعداد زیادی کوئری برای لایک و دیس لایک ایجاد میشه که باعث میشه سرعت سایت و Performance پایین بیاد لطفا راهماییم کنید چگونه می‌تونم این مشگل رو حل کنم لطفا با کد توضیح دهید ممنون

سلام لطفا از کد و بخش مربوطه اسکرین بدید تا بتونم راهنمایی تون کنم.

احمدرضا فاطمی کیا ۱۸ مرداد ۱۴۰۳، ۲۱:۱۸
من دقیق همین کاری که توی ویدیو آموزشی همین بخش بود انجام دادم و دیدم تعداد کوئری‌های زیاده برای جمع تعداد لایک زده می‌شود
Abolfazlkhanlar ۱۸ مرداد ۱۴۰۳، ۲۱:۲۳
public function LikesCount {return $this->likes()->where("vote" , 1)->count(); }
Abolfazlkhanlar ۱۸ مرداد ۱۴۰۳، ۲۱:۲۹

ببینید شما در اینجا کلا 3 کویری زدید و تنها راه دریافت هم از دیتابیس همین هست.

یک کویری زدید و لایک و دیسلایک‌ها رو گرفتید.

یک کویری برای دریافت لایک‌ها زدید.

یک کویری هم برای شمارش اونها.

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

اما راه اصولی همین هست و مشکلی نداره.

احمدرضا فاطمی کیا ۲۰ مرداد ۱۴۰۳، ۰۹:۴۲

سلام ببخشید شما منظوره منو اشتباه برذاشت کردین درست ما یک کوئری‌ می زنیم برای جمع لایک و دیس لایک‌ها اما اگر از برنامه Laravel Debugbar رو نصب کنید می‌بینید که تعدادی زیادی درخواست  (ً queries ) برای جمع تعداد لایک‌ها و دیس لایک‌ها زده می‌شود من منظورم بود 

در این قسمتی که عکس فرستادم کاملا مشخص است که تعداد زیادی درخواست  (ً queries ) برای جمع تعداد لایک‌ها و دیس لایک‌ها زده می‌شود که این تازه تعداد لایک و دیس لایک کمی است که مطعلق به دو تا محصول می‌باشد حالا شما فکر کنید ما هزار تا محصول داشته باشیم و بعد تعداد بسیار زیادی درخواست  (ً queries ) برای جمع تعداد لایک‌ها و دیس لایک‌ها زده می‌شود و همین باعث پایین امدن سرعت سایت می‌شود

Abolfazlkhanlar ۲۰ مرداد ۱۴۰۳، ۱۰:۰۸

تصویری بارگذاری نشده لطفا قرار بدید.

احمدرضا فاطمی کیا ۲۱ مرداد ۱۴۰۳، ۱۳:۵۷

این عکس منظورم هست

Abolfazlkhanlar ۲۱ مرداد ۱۴۰۳، ۱۴:۳۱

هر کاری می‌کنم تصویر بارگزاری نمیشه

Abolfazlkhanlar ۲۱ مرداد ۱۴۰۳، ۱۴:۳۲

این عکس 

Abolfazlkhanlar ۲۲ مرداد ۱۴۰۳، ۱۹:۳۱

ببینید 

اگر خیلی بران این مورد مهمه میتونید از سیستم کش در لاراول استفاده کنید و هر یک ساعت یکبار مقدارش رو آپدیت کنید.

https://laravel.com/docs/11.x/cache#retrieve-store

احمدرضا فاطمی کیا ۲۳ مرداد ۱۴۰۳، ۰۷:۲۰

این عکس 

Abolfazlkhanlar ۲۳ مرداد ۱۴۰۳، ۰۹:۱۲