Skip to content

Eloquent

Query Optimization

  1. Eager load relationships to avoid N+1 queries:

    php
    $users = User::query()->with(['posts'])->get();
  2. Use chunking for large datasets:

    php
    User::query()->chunk(100, function (Collection $users) {
        foreach ($users as $user) {
            // Process user
        }
    });
  3. Utilize database indexes for frequently queried columns.

  4. Use query caching for expensive, frequently run queries:

    php
    $users = Cache::remember('all_users', now()->addMinutes(10), static function (): Collection {
        return User::all();
    });
  5. Consider using Laravel's Query Builder for complex queries instead of Eloquent when performance is critical.