Sobes.tech
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_related i prefetch_related — smanjuje broj upita pri radu sa povezanim modelima.
  • Korišćenje values() i values_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.