
Performance Optimization
Optimización de consultas, problema N+1, eager loading, lazy loading, estrategias de caché, indexación de base de datos, herramientas de profiling
1¿Qué es el problema N+1 en Laravel?
¿Qué es el problema N+1 en Laravel?
Respuesta
El problema N+1 ocurre cuando Eloquent ejecuta una consulta para recuperar una colección y luego una consulta adicional por cada elemento para cargar una relación. Esto multiplica los accesos a la base de datos y degrada gravemente el rendimiento a gran escala. Usar eager loading con with() carga todas las relaciones en una sola consulta adicional en lugar de N consultas.
2¿Qué método se debe usar para resolver el problema N+1 al cargar relaciones?
¿Qué método se debe usar para resolver el problema N+1 al cargar relaciones?
Respuesta
El método with() realiza eager loading que carga las relaciones en una sola consulta adicional. En lugar de ejecutar una consulta por modelo al acceder a la relación, todas las relaciones se cargan por adelantado. Esto reduce drásticamente el número de consultas SQL y mejora el rendimiento.
3¿Cuál es la diferencia entre eager loading y lazy loading?
¿Cuál es la diferencia entre eager loading y lazy loading?
Respuesta
El eager loading carga las relaciones inmediatamente con la consulta principal mediante with(), mientras que el lazy loading carga las relaciones bajo demanda en el primer acceso. El lazy loading puede provocar el problema N+1 si las relaciones se acceden dentro de un bucle. El eager loading es recomendable cuando se van a usar las relaciones, para evitar consultas múltiples.
¿Cuál es la función de Cache::remember() en Laravel?
¿Cuál es la diferencia entre Cache::remember() y Cache::rememberForever()?
+19 preguntas de entrevista
Otros temas de entrevista Laravel
Fundamentos de PHP
Fundamentos de POO en PHP
Composer & Autoloading
Fundamentos de Laravel
Routing de Laravel
Blade Templates
Request & Response
Fundamentos de Eloquent ORM
Eloquent Relationships
Migrations & Schema Builder
Validación y formularios
Autenticación
Autorización y Policies
API Resources & Authentication
Middleware
Service Container & DI
Queues & Jobs
Events & Listeners
Notificaciones & Mail
File Storage
Testing & PHPUnit
Caching
Livewire & Inertia
Eloquent Advanced
Repository Pattern
Laravel Packages
Security Best Practices
Laravel Octane
Laravel Distributed Systems
Observability & Monitoring
Deployment & DevOps
Domina Laravel para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis