Main Menu

Belajar SQL Dasar #17: Index & Optimasi Query


👍 0 ❤️ 0 💡 0 🔥 0 🙌 0 🥳 0
Belajar SQL Dasar #17: Index & Optimasi Query

Halo teman-teman semuanya, di artikel terakhir dari seri Belajar SQL Dasar, kita akan membahas tentang index dan bagaimana cara melakukan optimasi query agar proses pencarian data menjadi lebih cepat dan efisien, terutama saat bekerja dengan database yang besar.

Apa Itu Index?

Index dalam SQL berfungsi seperti daftar isi pada buku — mempercepat pencarian data dalam tabel. Tanpa index, database harus menelusuri setiap baris (full scan) untuk menemukan data yang dicari.

Ilustrasi:

Misalnya kita punya tabel siswa dengan 1 juta data. Kalau kita cari siswa bernama "Ali" tanpa index, maka database akan membaca seluruh baris satu per satu. Tapi jika kolom nama sudah di-index, database bisa langsung melompat ke lokasi data.

Contoh Tabel

CREATE TABLE siswa (
  id INT PRIMARY KEY AUTO_INCREMENT,
  nama VARCHAR(100),
  kelas VARCHAR(20),
  jurusan_id INT
);

Membuat Index

CREATE INDEX idx_nama ON siswa(nama);

Sekarang pencarian berdasarkan nama akan jadi jauh lebih cepat!

Jenis-Jenis Index

  1. Single Column Index

    Index pada satu kolom:

    CREATE INDEX idx_kelas ON siswa(kelas);
    
  2. Multi Column Index

    Index pada beberapa kolom sekaligus:

    CREATE INDEX idx_kelas_jurusan ON siswa(kelas, jurusan_id);
    
  3. Unique Index

    Mencegah duplikasi data:

    CREATE UNIQUE INDEX idx_unik_nama ON siswa(nama);
    
  4. Fulltext Index (khusus untuk pencarian teks panjang)

    CREATE FULLTEXT INDEX idx_full_nama ON siswa(nama);
    

Cara Mengecek Index

SHOW INDEX FROM siswa;

Menghapus Index

DROP INDEX idx_nama ON siswa;

Tips Optimasi Query SQL

Berikut beberapa best practice dalam menulis query yang efisien:

  • Gunakan SELECT Secara Spesifik

    Daripada:

    SELECT * FROM siswa;
    

    Gunakan:

    SELECT nama, kelas FROM siswa;
    
  • Gunakan Index di Kolom yang Sering Dicari

    Jika sering menggunakan WHERE nama = ..., maka kolom nama wajib di-index.

  • Hindari Fungsi di Kolom WHERE

    -- Ini memperlambat pencarian karena tidak pakai index
    WHERE YEAR(tanggal_lahir) = 2005
    
    -- Lebih baik:
    WHERE tanggal_lahir BETWEEN '2005-01-01' AND '2005-12-31'
    
  • Gunakan LIMIT Saat Ambil Banyak Data

    SELECT * FROM siswa LIMIT 100;
    
  • Gunakan EXPLAIN Untuk Analisis Query

    EXPLAIN SELECT * FROM siswa WHERE nama = 'Ali';
    

    EXPLAIN menunjukkan apakah query menggunakan index dan seberapa efisiennya.

Kesimpulan

Dalam artikel ini, kita telah belajar bahwa index sangat penting untuk mempercepat pencarian data dalam SQL, terutama saat data sudah sangat banyak.

Kita juga telah mempelajari beberapa tips optimasi query agar sistem tetap cepat, efisien, dan hemat sumber daya.

Terima Kasih


SQL
Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami