Performance & Scalability
Open
Example from the ReviewMyCodes team
Django orders page takes 6 seconds — hundreds of SQL queries for one list
Description
The orders list shows each order's customer name. With 300 orders the page is very slow, and Django Debug Toolbar shows 301 queries.
— This is an example problem from the ReviewMyCodes team, showing how a good question looks. Real community questions appear alongside it.
Expected
The page should load in well under a second with a handful of queries.
Actual
301 SQL queries, ~6 s page load.
Steps to reproduce
- Seed 300 orders
- Open /orders with Debug Toolbar enabled
- Open the SQL panel
Code
python
# views.py
def orders(request):
orders = Order.objects.all()
return render(request, "orders.html", {"orders": orders})
# orders.html
# {% for order in orders %}{{ order.customer.name }}{% endfor %}