AF
AHMAD FAUZI BLOG TECH INSIGHTS & TO-DO\'S
Kembali ke Daftar Artikel
Full-Stack Web 5 Min Baca 03 Nov 2026 1 Views

Menghindari N+1 Query Problem di ORM: Kenapa Backend Anda Terasa Lambat Saat Data Bertambah

Masalah klasik yang sering lolos di tahap development: satu request mengeksekusi ratusan query database secara berulang. Cara mengatasinya dengan Eager Loading.

Menghindari N+1 Query Problem di ORM: Kenapa Backend Anda Terasa Lambat Saat Data Bertambah

Waktu testing lokal dengan 10 data dummy, endpoint API terasa sangat instan (20ms). Tapi begitu masuk server produksi dengan 5.000 user, endpoint yang sama butuh waktu 3.8 detik. Penyebab paling umum yang sering saya temukan pada kode junior adalah N+1 Query Problem.

Apa Itu Masalah N+1?

Terjadi ketika kode mengambil daftar parent (1 query), lalu di dalam perulangan loop mengambil child record satu per satu (N query). Jika ada 100 invoice, aplikasi menembak 101 kali query ke database server!

Solusi: Eager Loading

// BURUK: N+1 Query
$invoices = Invoice::all();
foreach ($invoices as $inv) {
    echo $inv->customer->name; // Mengeksekusi query baru di tiap iterasi!
}

// BAIK: Eager Loading (Hanya 2 Query)
$invoices = Invoice::with("customer")->get();
Share:
Ahmad Fauzi
Tentang Penulis

Ahmad Fauzi

IT Consultant, Network Engineer & Full-Stack Developer asal Karawang. Berfokus pada perancangan arsitektur jaringan internet ISP DENTIKA-NET, software enterprise NEXTIDEA, optimasi cloud, dan teknologi AI terkini.

Artikel Terkait