
Rendimiento de Django
Optimización de queries, problema N+1, índices de base de datos, connection pooling, profiling, monitoring
1¿Cuál es el problema de rendimiento más común relacionado con las queries del ORM de Django?
¿Cuál es el problema de rendimiento más común relacionado con las queries del ORM de Django?
Respuesta
El problema N+1 es el problema de rendimiento más común con el ORM de Django. Ocurre cuando una query inicial recupera N objetos y luego se ejecutan N queries adicionales para recuperar los objetos relacionados. Por ejemplo, iterar sobre artículos y acceder a su autor genera una query por artículo en lugar de una sola query con join.
2¿Qué método se debe usar para resolver el problema N+1 con una relación ForeignKey?
¿Qué método se debe usar para resolver el problema N+1 con una relación ForeignKey?
Respuesta
select_related() es el método adecuado para resolver el problema N+1 con relaciones ForeignKey y OneToOneField. Realiza un join SQL y recupera los objetos relacionados en una sola query. prefetch_related() se usa para relaciones ManyToMany o relaciones inversas (ForeignKey reverse).
3¿Cuándo se debe usar prefetch_related() en lugar de select_related()?
¿Cuándo se debe usar prefetch_related() en lugar de select_related()?
Respuesta
prefetch_related() está diseñado para relaciones ManyToMany y relaciones inversas (ForeignKey reverse). A diferencia de select_related() que hace un join SQL, prefetch_related() ejecuta una query separada y realiza el join en Python. Esto evita la duplicación de datos que ocurriría con un join SQL sobre relaciones many-to-many.
¿Cómo usar Prefetch() para personalizar las queries de prefetch_related()?
¿Cuál es el principal beneficio de añadir un índice de base de datos en un campo?
+21 preguntas de entrevista
Otros temas de entrevista Django
Fundamentos de Python
Python orientado a objetos
Fundamentos de Django
Models Django - Fundamentos
Vistas de Django
Plantillas Django
Formularios Django
QuerySets avanzados
Autenticación en Django
Middleware de Django
Django Admin
Django REST Framework
Señales de Django
Carga de archivos
Caché de Django
Sesiones de Django
Email en Django
Testing en Django
Seguridad de Django
Despliegue de Django
Django ORM avanzado
Django & Celery
Django Channels
Django & GraphQL
Django & Docker
Django en un ecosistema de microservicios
Comandos personalizados de Django
Internacionalización en Django
Patrones de Diseño en Django
Django Async y ASGI
Settings y configuración de producción
Observabilidad y monitoreo
Domina Django para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis