Laravel

Performance Optimization

Otimização de consultas, problema N+1, eager loading, lazy loading, estratégias de cache, indexação de banco de dados, ferramentas de profiling

22 perguntas de entrevista·
Senior
1

O que é o problema N+1 no Laravel?

Resposta

O problema N+1 ocorre quando o Eloquent executa uma consulta para recuperar uma coleção e depois uma consulta adicional por item para carregar uma relação. Isso multiplica os acessos ao banco de dados e degrada gravemente o desempenho em grande escala. Usar eager loading com with() carrega todas as relações em uma única consulta adicional em vez de N consultas.

2

Qual método deve ser usado para resolver o problema N+1 ao carregar relações?

Resposta

O método with() realiza eager loading que carrega as relações em uma única consulta adicional. Em vez de executar uma consulta por modelo ao acessar a relação, todas as relações são carregadas antecipadamente. Isso reduz drasticamente o número de consultas SQL e melhora o desempenho.

3

Qual é a diferença entre eager loading e lazy loading?

Resposta

O eager loading carrega as relações imediatamente com a consulta principal via with(), enquanto o lazy loading carrega as relações sob demanda no primeiro acesso. O lazy loading pode provocar o problema N+1 se as relações forem acessadas em um loop. O eager loading é recomendado quando as relações serão usadas, para evitar consultas múltiplas.

4

Qual é o papel de Cache::remember() no Laravel?

5

Qual é a diferença entre Cache::remember() e Cache::rememberForever()?

+19 perguntas de entrevista

Domine Laravel para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis