Takip Edin

element image element image element image element image
Django ORM Optimizasyonu image

N+1 Query Problemi

Bir developer kardeşimiz Django ile yaptığı sitesine girdiğinde fark etti: “Bu sayfa neden bu kadar yavaş yükleniyor 😭”. django-silk ile sorgular incelendiğinde 100 yazar için 101 SQL sorgusu çalıştığı görüldü.

🤯 N+1 Query Problemi: Django her yazarı aldıktan sonra, kitaplarını teker teker sorguluyordu.

3. only: Sen Hafızanı Boşa Yorma Kardeş

Teknik Açıklama: Modelin sadece belirli alanlarını getirir.

Kullanım: .only("title", "slug")

Hikaye:

Müzeye girip sadece tablo başlıklarına bakmak istersin. only der ki: “Sana sadece başlıkları getiriyorum.”

4. values ve values_list: Çıplak Veri Al, JSON Gibi

Teknik Açıklama: QuerySet yerine dict veya liste döner. JSON çıktısı gerekiyorsa çok uygundur.

Kullanım:

.values("id", "name") → [{id: 1, name: "Ali"}, {...}]
.values_list("id", flat=True) → [1, 2, 3]

Hikaye:

Sadece yazar adlarını almak istiyorsan model objesine gerek yoktur. values ve values_list sade ve hızlıdır.

5. defer: Lazım Olunca Getir Şimdilik Kalsın Kardeş

Teknik Açıklama: Bazı alanları ilk sorguda getirmez, ihtiyaç olursa çeker.

Kullanım: .defer("content")

Hikaye:

Haber sitesinde anasayfada sadece başlıkları getir, içerikleri tıklanırsa yükle. RAM ve performans dostu.

Kombinasyon Örnekleri

Article.objects.select_related("author").only("title", "author__name")
Book.objects.prefetch_related("authors").values("title", "authors__name")

Tek sorguda ilişkili veriler ve sadece gerekli alanlar çekilir.

Sonuç

Django ORM çok güçlüdür ama doğru kullanım gerekir. Fazla sorgu = yavaşlık. Az sorgu + doğru veri = hız ve mutlu kullanıcı 🎉

SubLogoBlog Yazılarımız

Blog

"Yeni Makalelerle İlham Alın"

Flask Rehber

Flask Rehber

Flask, hafif bir WSGI web uygulama frameworkudur. Karmaşık uygulamalara ölçeklenebilme özelliğiyle hızlı ve kolay bir başlangıç yapmak için tasarlanmıştır.

Daha Fazla
Python & MongoDB

Python & MongoDB

MongoDB, PostgreSQL - MySQL gibi ilişkisel veritabanlarından farklı olarak NoSQL veritabanı olarak sınıflandırılan bir veritabanıdır.

Daha Fazla
HTML Nedir ve Ne İşe Yarar?

HTML Nedir ve Ne İşe Yarar?

HTML nedir, ne işe yarar? HTML etiketleri, SEO uyumu, erişilebilirlik ve web geliştirmedeki rolünü adım adım öğrenin. 2025 güncel rehber.

Daha Fazla

Teknoloji Çözümleriyle Dijital Gücünüzü Artırın

Web geliştirme, oyun geliştirme, SEO ve veritabanı çözümleri için uzman ekibimizle şimdi tanışın.