Laravel

Performance Optimization

Ottimizzazione delle query, problema N+1, eager loading, lazy loading, strategie di caching, indicizzazione del database, strumenti di profiling

22 domande da colloquio·
Senior
1

Cos'è il problema N+1 in Laravel?

Risposta

Il problema N+1 si verifica quando Eloquent esegue una query per recuperare una collezione e poi una query aggiuntiva per ogni elemento per caricare una relazione. Questo moltiplica gli accessi al database e degrada gravemente le prestazioni su grandi volumi. Usare l'eager loading con with() carica tutte le relazioni in un'unica query aggiuntiva invece di N query.

2

Quale metodo si dovrebbe usare per risolvere il problema N+1 durante il caricamento delle relazioni?

Risposta

Il metodo with() esegue l'eager loading che carica le relazioni in un'unica query aggiuntiva. Invece di eseguire una query per modello quando si accede alla relazione, tutte le relazioni vengono caricate in anticipo. Questo riduce drasticamente il numero di query SQL e migliora le prestazioni.

3

Qual è la differenza tra eager loading e lazy loading?

Risposta

L'eager loading carica le relazioni immediatamente con la query principale tramite with(), mentre il lazy loading carica le relazioni su richiesta al primo accesso. Il lazy loading può causare il problema N+1 se si accede alle relazioni in un ciclo. L'eager loading è consigliato quando le relazioni verranno usate, per evitare query multiple.

4

Qual è il ruolo di Cache::remember() in Laravel?

5

Qual è la differenza tra Cache::remember() e Cache::rememberForever()?

+19 domande da colloquio

Padroneggia Laravel per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis