Sobes.tech
Junior — Middle
95

Kuidas teed andmebaasi päringute analüüsi ja optimeerimise Django-s?

Vastus AI-lt

sobes.tech AI

Django-s sageli kasutan järgmisi lähenemisviise päringute analüüsimiseks ja optimeerimiseks:

  • django-debug-toolbar kasutamine — võimaldab visuaalselt näha kõiki SQL-päringuid, mis lehel teostatakse, nende arvu ja täitmisaja.
  • queryset.explain() meetod — näitab päringu täitmisplaani andmebaasi tasandil, aitab mõista, milliseid indekseid kasutatakse.
  • Päringute optimeerimine select_related ja prefetch_related abil — vähendab päringute arvu seotud mudelitega töötades.
  • values() ja values_list() kasutamine — ainult vajalike väljade valimiseks, andmete mahtu vähendades.
  • Koodi ja päringute profiilimine — kitsaste kohtade tuvastamiseks.

select_related näide:

# Ilma optimeerimiseta
books = Book.objects.all()
for book in books:
    print(book.author.name)  # Iga raamatu puhul eraldi päring autorile

# Optimeerimisega
books = Book.objects.select_related('author').all()
for book in books:
    print(book.author.name)  # Üks päring JOIN-iga

Sellisel viisil väheneb päringute arv ja paraneb jõudlus.