tg-me.com/djangolearn_ir/1007
Last Update:
✅بهینهسازی کوئریها و مشکل N+1
از لینکدین Mohsen Sarabi
یکی از مشکلات رایج در کوئریها، N+1 Query Problem است. این مشکل زمانی رخ میدهد که ابتدا یک کوئری برای دریافت لیست اصلی دادهها اجرا میشود و سپس برای هر آیتم در این لیست، یک کوئری جداگانه برای دریافت دادههای مرتبط ارسال میشود. نتیجه این قضیه، فرستادن تعداد زیادی درخواست غیرضروری به پایگاه داده است که موجب افزایش زمان پردازش و کاهش عملکرد برنامه ما می شود!
✅ راهحل؟ استفاده از select_related
این متد با استفاده از JOIN در سطح دیتابیس، تمام دادههای مرتبط را در یک کوئری واحد واکشی میکند، که باعث بهینهسازی عملکرد و کاهش تعداد درخواستها میشود.
📌 اگر رابطه ManyToMany باشد، prefetch_related گزینه مناسبی است.
آیا تا به حال با این مشکل برخورد کردهاید؟ چگونه آن را حل کردید؟ خوشحال میشم تجربیاتتون را به اشتراک بذارید.
BY جنگولرن
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/djangolearn_ir/1007