目次
1. Apa itu indeks MySQL: Kunci untuk meningkatkan kinerja basis data
Dengan menggunakan indeks secara efektif pada basis data MySQL, Anda dapat meningkatkan kinerja kueri secara signifikan. Indeks adalah struktur data yang dibuat untuk kolom tertentu dalam basis data, berfungsi untuk meningkatkan kecepatan pencarian dan penyaringan. Misalnya, saat mengekstrak informasi tertentu dari sejumlah besar data, penggunaan indeks memungkinkan Anda melewatkan pemindaian seluruh data dan hanya mencari kolom yang ditentukan dalam indeks.Peran dan Jenis Indeks
Indeks MySQL memiliki jenis-jenis berikut:- PRIMARY (Primary Key):Kunci unik yang hanya diizinkan satu per tabel, digunakan sebagai pengidentifikasi utama tabel.
- UNIQUE Index:Indeks yang menjaga keunikan, mencegah nilai duplikat dimasukkan ke kolom yang ditentukan.
- General Index:Indeks yang tidak memiliki batasan keunikan, digunakan untuk meningkatkan efisiensi pencarian pada kolom tertentu.
2. Cara dasar memeriksa indeks di MySQL
Di MySQL, untuk memeriksa indeks yang sudah dibuat, gunakan perintah SHOW INDEX. Ini adalah perintah SQL sederhana yang menampilkan informasi indeks dalam tabel yang ditentukan. Berikut ini langkah-langkah konkretnya.Sintaks dasar SHOW INDEX dan isi output
SHOW INDEX FROM nama_tabel;
Penjelasan isi output
Saat perintah ini dijalankan, informasi berikut akan ditampilkan.- Table: Nama tabel tempat indeks berada
- Non_unique: Menunjukkan apakah indeks unik (0) atau mengizinkan duplikat (1)
- Key_name: Nama indeks
- Column_name: Nama kolom yang diterapkan indeks
- Cardinality: Perkiraan jumlah nilai unik yang terdaftar dalam indeks. Digunakan sebagai indikator efisiensi pencarian.

3. Pemeriksaan indeks pada tabel INFORMATION_SCHEMA.STATISTICS
Selain pernyataan SHOW INDEX, MySQL memiliki cara untuk memeriksa indeks dengan merujuk ke tabel INFORMATION_SCHEMA.STATISTICS. Ini berguna untuk membuat daftar indeks seluruh basis data, dan memungkinkan Anda mendapatkan informasi yang lebih detail.Kueri dasar INFORMATION_SCHEMA.STATISTICS
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, INDEX_NAME
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'nama_database';
Detail hasil kueri
- TABLE_SCHEMA:Nama basis data tempat indeks berada
- TABLE_NAME:Nama tabel tempat indeks berada
- COLUMN_NAME:Nama kolom yang diterapkan indeks
- INDEX_NAME:Nama indeks
4. Cara Menambah & Menghapus Indeks serta Dampaknya
Cara Menambah Indeks
Indeks dapat ditambahkan kemudian sesuai kebutuhan. Gunakan perintah berikut untuk membuat indeks pada kolom yang ditentukan.CREATE INDEX nama indeks ON nama tabel(nama kolom);
Misalnya, jika ingin menambahkan indeks pada kolom email
tabel users
, jalankan seperti berikut:CREATE INDEX idx_email ON users(email);
Cara Menghapus Indeks
Indeks yang tidak diperlukan dapat dihapus untuk mengoptimalkan kinerja operasi INSERT dan UPDATE. Penghapusan menggunakan perintah DROP INDEX.DROP INDEX nama indeks ON nama tabel;
Contoh indeks yang tidak diperlukan termasuk indeks yang ditetapkan pada kolom yang tidak digunakan dalam kondisi pencarian (klauzula WHERE). Menghapus indeks dapat meningkatkan kecepatan penyisipan dan pembaruan data.
5. Memeriksa Kinerja Indeks dengan Pernyataan EXPLAIN
Pernyataan EXPLAIN MySQL berguna untuk memeriksa rencana eksekusi query dan menyelidiki indeks mana yang diterapkan. Dengan ini, Anda dapat mengevaluasi efektivitas indeks dan melakukan optimasi bila diperlukan.Cara Dasar Menggunakan Pernyataan EXPLAIN
EXPLAIN SELECT * FROM nama_tabel WHERE nama_kolom = 'kondisi';
Dengan menggunakan perintah ini, Anda dapat memeriksa apakah indeks digunakan atau apakah pemindaian seluruh baris dilakukan. Hasilnya mencakup item berikut:- type: Jenis query (ALL berarti pemindaian seluruh baris, INDEX berarti indeks digunakan)
- possible_keys: Daftar indeks yang dapat digunakan untuk query
- key: Nama indeks yang sebenarnya digunakan
- rows: Perkiraan jumlah baris yang dipindai