I think you can use 'select_related(name of foreign key class) ' insted of all().
On Sun, 19 Jul 2020, 9:11 am karthik challa, <[email protected]> wrote: > Hi Experts, > > I am trying to execute the below query and the query is taking more than 5 > minutes. > > Here are the details > > Model.py > > class Url(models.Model): > subdomain = models.ForeignKey(Subdomain, null=True, blank=True, > related_name='url_subdomain', on_delete=models.SET_NULL,db_index=True) > full_url = models.CharField(max_length=1000, unique=True, db_index=True) > class Meta: > ordering = ['full_url'] > > def __str__(self): > return self.full_url > > 1>Django query ORM > > subdomains = Subdomain.objects.all().annotate(numItems=Count( > 'url_subdomain')).order_by('name') > > 2>SQL Query > > SELECT "urls_subdomain"."id", "urls_subdomain"."created_at", > "urls_subdomain"."name", COUNT("urls_url"."id") AS "numItems" > <http://localhost:8000/urls/search/#> FROM "urls_subdomain" LEFT OUTER > JOIN "urls_url" ON ("urls_subdomain"."id" = "urls_url"."subdomain_id") > GROUP BY "urls_subdomain"."id" ORDER BY "urls_subdomain"."name" ASC > > 3>Templates > > {% if subdomains %} > <div id="step-filter-tag" class="mb4"> > <div class="b mb3">Subdomain</div> > <div class="overflow-auto" style="max-height: 16rem;"> > {% for item in subdomains %} > item > {% endfor %} > </div> > </div> > > {% endif %} > > Please let me know how can i optimize the preformance Thanks & Regards, > Karthik > > -- > You received this message because you are subscribed to the Google Groups > "Django developers (Contributions to Django itself)" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-developers/996db826-fe18-4557-977b-58493c1f9481o%40googlegroups.com > <https://groups.google.com/d/msgid/django-developers/996db826-fe18-4557-977b-58493c1f9481o%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CACggCHuGf%2BwUA4pYcB9%2BfDt3XLpVsjqQaw%3DyoL6WrfcwKp%2B5bA%40mail.gmail.com.
