Langsung ke konten utama

Cara Optimasi Performa Query Laravel dengan Indexing di MySQL

Pendahuluan

Bayangin lagi ngerjain fitur sederhana, tapi pas data di database udah nyentuh angka puluhan ribu, aplikasi tiba-tiba lemot banget pas narik data user. Seringkali kita nyalahin server atau framework-nya, padahal database-nya cuma lagi kebingungan nyari data di tumpukan 'kertas' yang berantakan karena nggak punya indeks.

Tips & Best Practices

  • Di banyak project, biasanya saya mulai dari ngecek kolom mana yang paling sering masuk ke klausa WHERE. Kalau kamu sering filter berdasarkan email atau username, itu kandidat utama buat dipasangin index.
  • Saat ngebangun relasi antar tabel, pastikan kolom foreign key selalu dapet index. Tanpa index di kolom ini, proses join antar tabel bakal makan resource CPU yang gila-gilaan pas datanya mulai membengkak.
  • Kalau ada kolom yang isinya boolean atau status, jangan buru-buru kasih index. Saya belajar bahwa index di kolom dengan kardinalitas rendah (sedikit variasi nilai) malah sering bikin MySQL makin lambat karena overhead-nya lebih gede daripada manfaatnya.

Contoh Kode

Daripada ngandelin query mentah, di Laravel kita biasa pake migration buat nambahin index. Ini jauh lebih rapi karena ke-track di version control:

Schema::table('users', function (Blueprint $table) { $table->index('email'); $table->index(['first_name', 'last_name']); });

Kenapa pakai index gabungan (composite)? Karena kalau aplikasi kamu sering nge-search pake kombinasi nama depan dan belakang, index gabungan bakal bikin pencarian jauh lebih instan dibanding index terpisah.

Variasi Implementasi

Ada dua pendekatan yang biasa saya ambil. Pertama, pakai unique() index kalau datanya memang harus unik, ini sekalian jadi validasi di level database. Kedua, pakai index() biasa buat kolom yang frekuensi bacanya tinggi tapi isinya bisa duplikat. Kalau datanya sangat besar dan sering dicari teksnya, saya biasanya beralih ke fulltext index, tapi ingat, performanya bakal beda jauh dibanding index standar.

Kesalahan Umum

  1. Over-indexing: Naruh index di semua kolom karena mikirnya 'biar cepet', padahal tiap index bikin proses INSERT dan UPDATE jadi berat.
  2. Lupa index di kolom yang dipakai buat ORDER BY, jadinya database harus ngelakuin 'filesort' yang bikin query nunggu lama.
  3. Salah urutan di composite index; inget, index itu kayak buku telepon, urutan kolom ngaruh banget ke performa.
  4. Mikir kalau LIKE '%query%' bakal kena index, padahal wildcard di depan bikin index-nya gak kepake sama sekali.
  5. Nggak pernah ngecek EXPLAIN query. Banyak developer cuma nerka-nerka, padahal EXPLAIN itu sakti banget buat ngeliat query kita pake index atau nggak.

Ringkasan

Intinya, indexing itu kayak bikin daftar isi buat database kamu. Jangan berlebihan, tapi jangan sampai absen di kolom vital. Setiap kali performa drop, coba balik lagi ke prinsip 'tahu apa yang dicari' dan pasang index di situ. Database yang enteng bakal bikin user kamu lebih betah pake aplikasi buatanmu.

Komentar

Postingan populer dari blog ini

Fungsi lain tombol penerima panggilan di headset

Kegunaan tombol yang berada di headset utamanya adalah untuk menerima panggilan dan pause panggilan. Dan headset itu sendiri, kadang juga digunakan untuk mendengarkan music, digunakan bersama saat main game, supaya suara yang dikeluarkan oleh gadget tidak terlalu keras sehingga mengurangi beban gadget. Dengan mengurangi beban gadget, ada beberapa yang beranggapan kalau itu akan menghemat batere.

Cara Reset Password Database MySQL Menggunakan Laragon

Cara Reset Password Database MySQL Menggunakan Laragon Laragon adalah salah satu lingkungan pengembangan lokal (local development environment) yang populer di antara para pengembang web. Dalam beberapa kasus, mungkin kita perlu mereset password database MySQL pada Laragon jika lupa password atau untuk alasan keamanan tertentu. Berikut adalah langkah-langkah yang dapat kita ikuti untuk melakukan reset password database MySQL menggunakan Laragon:

Apa Itu R dan L di Headset? Ini Dia Perbedaan dan Fungsinya yang Perlu Anda Ketahui

Arti R dan L di Headset: Apa Perbedaannya? Headset adalah alat yang digunakan untuk mendengarkan suara dari sumber audio seperti ponsel, komputer, atau pemutar musik. Headset biasanya terdiri dari dua bagian, yaitu earphone yang dimasukkan ke dalam telinga dan mikrofon yang digunakan untuk berbicara. Pada earphone, kita sering melihat ada tulisan R dan L. Apa arti dan perbedaan dari kedua huruf tersebut?