OPTIMASI QUERY UNTUK DATA BESAR DI LARAVEL (10 JUTA ROWS) 🎯 Tujuan Mengoptimalkan performa query list data dari tabel besar ( mutations , 10 juta baris), agar: ⚡ Cepat (sub-second query time) ✅ Modular & scalable 💡 Mudah dirawat dan dikembangkan 🔐 Aman dengan validasi input 🧩 Masalah Awal Query lambat (hingga 45 detik), meskipun sudah ada index. Banyak when() di controller membuat kode kompleks. Menggunakan simplePaginate() yang masih menghitung total data. Relasi berat ( with('mutationRetur') ) selalu di-load. ✅ Solusi Utama 1. Gunakan pendekatan modular filter class : Setiap filter dibuat di class-nya sendiri: Search.php , CashFlow.php , dll. Mudah dikembangkan saat filter bertambah. Dapat digunakan lintas fitur: list, export, reporting. 2. Gunakan cursorPaginate() untuk performa tinggi: Tidak menghitung total data. Lebih ringan dari paginate() dan simplePaginate() . Cocok untuk dataset besar. 3. Validasi input request pakai FormReq...
OPTIMASI QUERY UNTUK DATA BESAR DI LARAVEL (10 JUTA ROWS)
April 22, 2025
OPTIMASI QUERY UNTUK DATA BESAR DI LARAVEL (10 JUTA ROWS) 🎯 Tujuan Mengoptimalkan performa query list data dari tabel besar ( mutations , 10 juta baris), agar: ⚡ Cepat (sub-second query time) ✅ Modular & scalable 💡 Mudah dirawat dan dikembangkan 🔐 Aman dengan validasi input 🧩 Masalah Awal Query lambat (hingga 45 detik), meskipun sudah ada index. Banyak when() di controller membuat kode kompleks. Menggunakan simplePaginate() yang masih menghitung total data. Relasi berat ( with('mutationRetur') ) selalu di-load. ✅ Solusi Utama 1. Gunakan pendekatan modular filter class : Setiap filter dibuat di class-nya sendiri: Search.php , CashFlow.php , dll. Mudah dikembangkan saat filter bertambah. Dapat digunakan lintas fitur: list, export, reporting. 2. Gunakan cursorPaginate() untuk performa tinggi: Tidak menghitung total data. Lebih ringan dari paginate() dan simplePaginate() . Cocok untuk dataset besar. 3. Validasi input request pakai FormReq...
Tidak ada komentar