Laravel:performance Eager Loading

Prevent N+1 queries by eager loading; enable lazy-loading protection in non-production; choose selective fields

jpcaparas a1f0e7c 734 B Updated

File contents

Eager Loading and N+1 Prevention

Load Relations Explicitly

Post::with(['author', 'comments'])->paginate();
  • Use load()/loadMissing() after fetching models when needed
  • Select only required columns for both base query and relations

Guard Against Lazy Loading in Dev/Test

Add to a service provider (non-production):

Model::preventLazyLoading(! app()->isProduction());

Verify

  • Use a query logger or debugbar to confirm relation queries are minimized
  • Add tests that assert counts or avoid unexpected query spikes

jpcaparas/superpowers-laravel/tree/main/skills/performance-eager-loading commit a1f0e7c5ca

Frequently asked questions

npx skillmds@latest add jpcaparas/laravel-performance-eager-loading