Django

Django Performansı

Sorgu optimizasyonu, N+1 problemi, veritabanı indeksleri, connection pooling, profiling, monitoring

24 mülakat soruları·
Senior
1

Django ORM sorgularıyla ilgili en yaygın performans sorunu nedir?

Cevap

N+1 problemi, Django ORM ile en yaygın performans sorunudur. Bir başlangıç sorgusu N nesne getirdiğinde ve ardından ilişkili nesneleri getirmek için N ek sorgu çalıştırıldığında ortaya çıkar. Örneğin, makaleler üzerinde dolaşıp yazarlarına erişmek, tek bir join sorgusu yerine makale başına bir sorgu üretir.

2

ForeignKey ilişkisinde N+1 problemini çözmek için hangi metot kullanılmalıdır?

Cevap

select_related(), ForeignKey ve OneToOneField ilişkilerinde N+1 problemini çözmek için uygun metottur. Bir SQL join gerçekleştirir ve ilişkili nesneleri tek bir sorguda getirir. prefetch_related() ise ManyToMany ilişkileri veya ters ilişkiler (ForeignKey reverse) için kullanılır.

3

prefetch_related() ne zaman select_related() yerine kullanılmalıdır?

Cevap

prefetch_related(), ManyToMany ilişkileri ve ters ilişkiler (ForeignKey reverse) için tasarlanmıştır. SQL join gerçekleştiren select_related()'in aksine, prefetch_related() ayrı bir sorgu çalıştırır ve join işlemini Python tarafında yapar. Bu, many-to-many ilişkilerinde SQL join ile oluşacak veri tekrarını önler.

4

prefetch_related() sorgularını özelleştirmek için Prefetch() nasıl kullanılır?

5

Bir alana veritabanı indeksi eklemenin temel faydası nedir?

+21 mülakat soruları

Bir sonraki mülakatın için Django'de uzmanlaş

Tüm sorulara, flashcards'a, teknik testlere, code review alıştırmalarına ve mülakat simülatörlerine eriş.

Ücretsiz başla