JustPaste
JustPaste
Tutorial 27 Januari 2026 1 menit baca 2.025 views Regi Pratama

Laravel Eloquent: Tips dan Trik untuk Query yang Efisien

Eloquent memudahkan interaksi dengan database, tapi salah penggunaan bisa menyebabkan N+1 problem dan query lambat.

Eager Loading — Solusi N+1 Problem

// ❌ N+1 Problem
$posts = Post::all(); // 1 query
foreach ($posts as $post) {
    echo $post->author->name; // N queries!
}

// ✅ Eager Loading $posts = Post::with(['author', 'category', 'tags'])->get();

Lazy Eager Loading

$posts = Post::all();
// Keputusan load relation belakangan
$posts->load('author');

Select Kolom yang Diperlukan

// ❌ Load semua kolom
Post::with('author')->get();

// ✅ Select kolom spesifik Post::with('author:id,name,avatar')->get(['id', 'title', 'slug']);

Query Scope

// Di Model
public function scopePopular(Builder $query, int $minViews = 1000): Builder
{
    return $query->where('views', '>=', $minViews);
}

// Penggunaan Post::popular(500)->published()->latest()->get();

Chunk untuk Data Besar

// Jangan load semua ke memory
Post::chunk(500, function ($posts) {
    foreach ($posts as $post) {
        // Process...
    }
});

Bagikan artikel ini: