⚡ Index & Optimasi Query

Level: Advanced

Index adalah struktur data tambahan yang mempercepat pencarian data di tabel. Bayangkan seperti daftar isi buku: tanpa index, kita harus membuka halaman satu per satu; dengan index, kita langsung lompat ke halaman yang dicari. Optimasi query memastikan database tetap cepat meskipun data semakin besar.

📖 Konsep Index

⚠️ Index mempercepat SELECT, tapi bisa memperlambat INSERT/UPDATE/DELETE karena index juga harus diperbarui.

🛠️ Praktik Kecil

Contoh penggunaan index pada tabel pegawai:

-- Membuat index pada kolom nama
CREATE INDEX idx_nama ON pegawai(nama);

-- Membuat index unik pada email
CREATE UNIQUE INDEX idx_email ON pegawai(email);

-- Membuat composite index pada posisi dan departemen_id
CREATE INDEX idx_posisi_dept ON pegawai(posisi, departemen_id);

-- Melihat daftar index
SHOW INDEX FROM pegawai;

-- Menghapus index
DROP INDEX idx_nama ON pegawai;

👉 Gunakan EXPLAIN sebelum query untuk melihat apakah index digunakan:

EXPLAIN SELECT * FROM pegawai WHERE nama = 'Andi';

🎮 Mini Challenge

Pada tabel transaksi di sistem inventaris:

Tugas tambahan: Uji performa query dengan data dummy dalam jumlah besar (misalnya 100.000 baris) untuk melihat dampak index.