Laravel Performance Eager Loading

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

noartem 5e247ca 733 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

noartem/laravel-vue-skills/tree/main/skills/laravel-performance-eager-loading commit 5e247ca96a

Frequently asked questions

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