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

مشکل در اجرا کوئری

سلام به همه دوستان عزیز
دوستان داخل فروشگاهم یک امکانی به اسم خرید سریع انجام دادم که کاربر میتونه با کلیک بر روی آن بخشی از ویژگی های محصول رو ببینه. الان مشکل من اینجاست که وقتی می خوام ویژگی ها رو نمایش بدم مدت زمان رفرش صفحه خيلی طول میکشه و این اررور Maximum execution time of 60 seconds exceeded رو میده.
این کد های من هستش:
توضیح تصویر رو وارد کنید
این متود تمام ویژگی ها رو برمی‌گیردونه.
توضیح تصویر رو وارد کنید
در آخر به متود جای متود first متود get نوشتم.
توضیح تصویر رو وارد کنید
داخل ویو هم به این شکل نمایش میدم.

متغیر tags$ هم آرایه رو برمیگردونه که من فقط به اندیس tag احتیاج دارم.
همین کد ها رو اجرا می کنم صفحه 30 الی 40 ثانیه طول میکشه که رفرش بشه و بعدش خطا میگیره.
ممنون


ثبت پرسش جدید
علی محمدی
@sajad.zangeneh20 2 سال پیش مطرح شد
0

دوستان لطفا راهنمایی کنید


امیر علی
تخصص : طراح و توسعه دهنده fullstack
@ajdar9667 2 سال پیش مطرح شد
0

اطلاعات جدولت خیلی زیاده ؟ اولا میتونی از value() استفاده کنی ثانیا میتونی از پگینیت استفاده کنی که سرعت کویری خیلی بیشتر بشه


علی محمدی
@sajad.zangeneh20 2 سال پیش مطرح شد
0

اطلاعات جدول زیاد نیست.
value کجا استفاده کنم ؟


امیر علی
تخصص : طراح و توسعه دهنده fullstack
@ajdar9667 2 سال پیش مطرح شد
0

خب اگه زیاد نیست پس عجیبه زمان میبره یه عکس بده از دیتابیس


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 2 سال پیش آپدیت شد
0

سلام

مدت زمان ۳۰-۴۰ ثانیه که میگید و بعد ارور time-out اصلا طبیعی نیست و احتمالا داخل یک حلقه بی‌نهایت یا چیزی از این جنس گیر می افته. و الا کوئری تون هر چقدر هم سنگین باشه در یک سایت معمولی اون هم نسخه لوکال به هیچ وجه نباید اینقدر زمان ببره.

راهکار خیلی ساده و ابتدایی این هست که بصورت تکه تکه کدتون رو بررسی کنید و بعد از هر قسمت یک ()dd بگذارید و خروجی مرحله قبل رو چک کنید. اگر سریع بدست اومد و نتیجه اش هم همون چیزی بود که خواستید برید سراغ خط یا بلوک بعدی کدهاتون و این کار رو ادامه بدید تا بفهمید کدوم کد هست که کار رو قفل می‌کنه.

یک راهکار دیگه که خیلی مفیده و واقعا لازمه استفاده از پکیج‌های laravel-debugbar و laravel-query-detector هست که به شما پشت صحنه اجرای کوئری ها رو نشون میده و کاملا مشخص میشه برای هر صفحه چه کوئری هایی اجرا شدن و هر کدومشون چقدر زمان بردند. البته شرطش اینه که صفحه تون بالا بیاد و به ارور Time-Out نخوره.


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

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