Junior — Middle
93
Wie führst du die Analyse und Optimierung von Datenbankabfragen in Django durch?
Antwort von AI
sobes.tech KI
Um Django'da sorguları analiz etmek ve optimize etmek için genellikle aşağıdaki yaklaşımları kullanıyorum:
django-debug-toolbarkullanımı — sayfada gerçekleştirilen tüm SQL sorgularını görsel olarak gösterir, sayısı ve çalışma süresi dahil.queryset.explain()yöntemi — sorgunun veritabanı seviyesinde yürütme planını gösterir, hangi indekslerin kullanıldığını anlamaya yardımcı olur.select_relatedveprefetch_relatedile sorgu optimizasyonu — ilişkili modellerle çalışırken sorgu sayısını azaltır.values()vevalues_list()kullanımı — sadece gerekli alanları seçmek için, veri hacmini azaltır.- Kod ve sorgu profil oluşturma — darboğazları tespit etmek için.
select_related kullanım örneği:
# Optimizasyon olmadan
books = Book.objects.all()
for book in books:
print(book.author.name) # Her kitap için ayrı bir yazar sorgusu
# Optimizasyon ile
books = Book.objects.select_related('author').all()
for book in books:
print(book.author.name) # Tek sorgu ile JOIN
Bu şekilde, sorgu sayısı azalır ve performans artar.