Junior — Middle
92
Kako vršiš analizu i optimizaciju upita ka bazi podataka u Django?
Одговор од АИ
sobes.tech АИ
Za analizu i optimizaciju upita u Django, obično koristim sledeće pristupe:
- Korišćenje
django-debug-toolbar— omogućava vizuelno prikazivanje svih SQL upita koji se izvršavaju na stranici, njihov broj i vreme izvršenja. - Metod
queryset.explain()— prikazuje plan izvršenja upita na nivou baze podataka, pomaže da se razume koji se indeksi koriste. - Optimizacija upita pomoću
select_relatediprefetch_related— smanjuje broj upita pri radu sa povezanim modelima. - Korišćenje
values()ivalues_list()— za odabir samo potrebnih polja, smanjuje količinu podataka. - Profilisanje koda i upita — za identifikaciju uskih grla.
Primer korišćenja select_related:
# Bez optimizacije
books = Book.objects.all()
for book in books:
print(book.author.name) # Za svaku knjigu poseban upit za autora
# Sa optimizacijom
books = Book.objects.select_related('author').all()
for book in books:
print(book.author.name) # Jedan upit sa JOIN-om
Na ovaj način, broj upita se smanjuje, a performanse se poboljšavaju.