Sahandi81
3 سال پیش توسط Sahandi81 مطرح شد
2 پاسخ

بهینه سازی کوئری

سلام دوستان
یک کوئری روی یک دیتابیس سنگین داریم بدین شکل :

select `id`, `title`, `slug`, `img` from `product_view` where `status` = ? and exists (select * from `filter` inner join `product_has_filters` on `filter`.`id` = `product_has_filters`.`filter_id` where `product_view`.`id` = `product_has_filters`.`product_id` and `filter`.`deleted_at` is null) and exists (select * from `product_types` where `product_view`.`id` = `product_types`.`product_id` and `status` = ? and `product_types`.`deleted_at` is null) order by `id` desc

و این کوئری 8 ثانیه طول میکشه.
بجز کش کردن خروجی برای استفاده های بعدی
مورد خاصی هست مد نظرتون ؟ 8 ثانیه زیاده واقعا


ثبت پرسش جدید
مصطفی خراشادی زاده
@safakh 3 سال پیش مطرح شد
0

علیک سلام

اگر ساختار جداول مربوط رو هم میفرستادید بهتر بود

فعلا تنها چیزی که به ذهنم میرسه که کمک کنه index گذاری مناسب هستش

یکی از جاهایی که index گذاری کمک میکنه زمانی هستش که ما داخل کوئری ها مون شرط روش اعمال میکنیم


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

سلام خسته نباشید
ببین کلیدی ترین نکته برای کوئری و سرعت بخشیدن یه سری نکات ریز هست
ببین توی کوئری همیشه بیا جا هایی رو اول فیلتر کن که خیلی از ایتم ها نگیره برای مثال میخوای محصولات فعال کاربر رو بگیری به صورت عادی اول میزنی وضعیت فعال و ایدی کاربر با باهاش یکی باشه درسته؟ خب تو میتونی بیای اول ایدی رو فیلتر کنی که کلی ایتم حذف بزن به اصطلاح و بعد برای وضعیت


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

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