راکت

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

5 پاسخ

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

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

ثبت پرسش جدید

پاسخ‌ها

5
علی محمدی
علی محمدی
@sajad.zangeneh20

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

امیر علی
امیر علی
@ajdar9667

تخصص: طراح و توسعه دهنده fullstack

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

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

علی محمدی
علی محمدی
@sajad.zangeneh20

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

امیر علی
امیر علی
@ajdar9667

تخصص: طراح و توسعه دهنده fullstack

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

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

سلام

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

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

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

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

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