İçeriğe geç

Erken Materyalizasyon (ARCH2056)

Anahtar python.orm.early-materialization · Önem warning · Kategori orm

Sorguyu listeye materyalize ettikten sonra bellekte filtreleme/sıralama yapmak, veritabanına itilmesi gereken işi uygulamaya taşır. Tüm satırları çekip sonra elemek israftır.

users = list(User.objects.all())
active = [u for u in users if u.is_active] # bellekte filtreleniyor
active = User.objects.filter(is_active=True) # filtre DB'de

Filtre, sıralama ve agregasyonu materyalizasyondan önce .filter() / .order_by() ile veritabanına itin.