DEV Community

Dhiecoderweb
Dhiecoderweb

Posted on • Originally published at dhiecoderweb.com

Cara Optimasi Query MySQL dengan Index

Seiring bertambahnya jumlah data di database, query yang tadinya cepat bisa menjadi lambat. Salah satu solusi paling efektif untuk mempercepat query di MySQL adalah menggunakan Index. Index bekerja seperti indeks buku: daripada membaca setiap halaman satu per satu, Anda langsung melompat ke halaman yang tepat. Artikel ini membahas cara membuat dan menggunakan index MySQL secara tepat.

Apa Itu Index di MySQL?

Index adalah struktur data tambahan yang MySQL simpan untuk mempercepat operasi pencarian. Tanpa index, MySQL harus melakukan Full Table Scan — membaca setiap baris dari awal hingga akhir. Dengan index, MySQL bisa langsung menemukan data yang dicari dalam waktu jauh lebih singkat. Kelemahannya, index membutuhkan ruang penyimpanan tambahan dan sedikit memperlambat operasi INSERT, UPDATE, dan DELETE.

Melihat Performa Query dengan EXPLAIN

Sebelum membuat index, gunakan EXPLAIN untuk menganalisis bagaimana MySQL menjalankan query Anda:

-- Contoh tabel tanpa index (selain PRIMARY KEY)
CREATE TABLE produk (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama_produk VARCHAR(200) NOT NULL,
    kategori VARCHAR(50) NOT NULL,
    harga DECIMAL(10, 2) NOT NULL,
    stok INT NOT NULL DEFAULT 0,
    tgl_dibuat DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;

-- Analisis query sebelum index
EXPLAIN SELECT * FROM produk WHERE kategori = 'Elektronik';

-- Kolom penting yang perlu diperhatikan:
-- type: ALL = full scan (buruk), ref/range/const = pakai index (baik)
-- key: nama index yang digunakan (NULL = tidak pakai index)
-- rows: estimasi jumlah baris yang dibaca
-- Extra: info tambahan seperti "Using filesort", "Using temporary"
Enter fullscreen mode Exit fullscreen mode

Artikel ini ditampilkan sebagian. Untuk pembahasan selengkapnya, beserta contoh dan langkah detailnya, Anda dapat membacanya pada sumber aslinya:

Cara Optimasi Query MySQL dengan Index

Tutorial pemrograman dan tools developer lainnya juga tersedia di dhiecoderweb.com.

Top comments (0)