Aplikasi database yang dibuat di Laravel jadi lambat saat banyak data yang dikelola? Kemungkina itu terjadi karena masalah query dalam database yang di-looping mengambil data berulang.
Cara Mengatasinya
Pertama kamu harus instal terlebih dahulu clockwork laravel pada projek kamu serta ekstensionnya di browser. Kamu bisa baca dokumentasinya. Untuk instal library clockwork pada projek kamu, silahkan buka terminal dan ketikan sintaks berikut:
composer require itsgoingd/clockwork
Jika sudah berhasil diinstal, selanjutnya instal ekstension clockwork pada browser kamu. Caranya silahkan buka Chrome Web Store. Lalu cari clockwork dan instal.
Langkah selanjutnya buka website aplikasi kamu yang me-load data dari database. Lalu inspect halaman. Pada pojok kanan atas yang bertanda >> kamu klik dan pilih clockwork. Kemudian pindah ke tab database. Lalu lihat pada queries.
Dari gambar di atas, ternyata website kita saat mengambil data dari database ternyata melakukan query hingga 2.001 query padahal kita hanya membuat satu query dengan dua relasi tabel saja. Itu disebabkan karena query kita me-looping dan mengambil data satu-satu dan terus berulang hingga tampil semua data yang diminta query. Dan ini yang dinamakan lazy loading. Oleh karena itu kita harus merubahnya menjadi Eager Loading agar query yang dilakukan tidak berulang-ulang. Kamu bisa baca dokumentasinya diwebsite laravel. Untuk melakukannya, kamu cukup rubah codenya seperti berikut:
Setelah dirubah, kembali cek menggunakan clockwork. Dan perhatikan gambar di bawah:
Dan sekarang perhatikan query yang dilakukan hanya 3 jauh berbeda dengan sebelumnya hingga 2000 query.
Tidak ada komentar:
Posting Komentar