
Prestazioni di Django
Ottimizzazione delle query, problema N+1, indici del database, connection pooling, profiling, monitoring
1Qual è il problema di prestazioni più comune legato alle query dell'ORM di Django?
Qual è il problema di prestazioni più comune legato alle query dell'ORM di Django?
Risposta
Il problema N+1 è il problema di prestazioni più comune con l'ORM di Django. Si verifica quando una query iniziale recupera N oggetti e poi vengono eseguite N query aggiuntive per recuperare gli oggetti correlati. Ad esempio, iterare sugli articoli e accedere al loro autore genera una query per articolo invece di una singola query con join.
2Quale metodo si dovrebbe usare per risolvere il problema N+1 con una relazione ForeignKey?
Quale metodo si dovrebbe usare per risolvere il problema N+1 con una relazione ForeignKey?
Risposta
select_related() è il metodo appropriato per risolvere il problema N+1 con le relazioni ForeignKey e OneToOneField. Esegue un join SQL e recupera gli oggetti correlati in una singola query. prefetch_related() viene usato per le relazioni ManyToMany o le relazioni inverse (ForeignKey reverse).
3Quando si dovrebbe usare prefetch_related() invece di select_related()?
Quando si dovrebbe usare prefetch_related() invece di select_related()?
Risposta
prefetch_related() è progettato per le relazioni ManyToMany e le relazioni inverse (ForeignKey reverse). A differenza di select_related() che esegue un join SQL, prefetch_related() esegue una query separata ed effettua il join in Python. Questo evita la duplicazione dei dati che si verificherebbe con un join SQL sulle relazioni many-to-many.
Come usare Prefetch() per personalizzare le query di prefetch_related()?
Qual è il vantaggio principale di aggiungere un indice del database su un campo?
+21 domande da colloquio
Altri argomenti di colloquio Django
Fondamenti di Python
Python orientato agli oggetti
Fondamenti di Django
Models Django - Fondamenti
Viste Django
Template Django
Form Django
QuerySet avanzati
Autenticazione Django
Middleware Django
Django Admin
Django REST Framework
Segnali Django
Caricamento file
Caching di Django
Sessioni Django
Email in Django
Testing in Django
Sicurezza di Django
Deployment di Django
Django ORM avanzato
Django & Celery
Django Channels
Django & GraphQL
Django & Docker
Django in un ecosistema di microservizi
Comandi Django personalizzati
Internazionalizzazione in Django
Design Pattern in Django
Django Async e ASGI
Settings e configurazione di produzione
Observability e monitoring
Padroneggia Django per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis