
Performance Optimization
Query optimization, N+1 problem, eager loading, lazy loading, caching strategies, database indexing, profiling tools
1What is the N+1 problem in Laravel?
What is the N+1 problem in Laravel?
回答
The N+1 problem occurs when Eloquent executes one query to retrieve a collection, then an additional query per item to load a relationship. This multiplies database accesses and severely degrades performance at scale. Using eager loading with with() loads all relationships in a single additional query instead of N queries.
2Which method should be used to solve the N+1 problem when loading relationships?
Which method should be used to solve the N+1 problem when loading relationships?
回答
The with() method performs eager loading which loads relationships in a single additional query. Rather than executing one query per model when accessing the relationship, all relationships are loaded upfront. This drastically reduces the number of SQL queries and improves performance.
3What is the difference between eager loading and lazy loading?
What is the difference between eager loading and lazy loading?
回答
Eager loading loads relationships immediately with the main query via with(), while lazy loading loads relationships on demand upon first access. Lazy loading can cause the N+1 problem if relationships are accessed in a loop. Eager loading is recommended when relationships will be used to avoid multiple queries.
What is the role of Cache::remember() in Laravel?
What is the difference between Cache::remember() and Cache::rememberForever()?
+19 面接問題