--> Skip to main content

Tutorial MySQL :INDEX

MySQL Index
Dalam tutorial ini, kita akan mempelajari cara membuat index pada MySQL. Fungsi index sendiri berguna dalam mempercepat pengambilan data dari table.

Fungsi index pada database dapat dianalogikan seperti index pada sebuah kamus. Jika kita ingin mencari arti dari kosakata withdrawal pada kamus bahasa inggris, tentunya akan membutuhkan waktu lama, jika tidak ada penglabelan tiap halaman yang didasarkan pada alphabet. Bayangkan seandainya jika harus mencarinya tanpa index, tentunya query ke table tentunya akan membutuhkan waktu yang lama juga.

MEMBUAT INDEX

Pembuatan index dibagi dua: ada yang mengizinkan nilai duplikat dan yang tidak mengizinkan nilai duplikat yang disebut dengan unique index.

SQL Syntax yang mengizinkan nilai duplikat:
CREATE INDEX nama_index
ON nama_table (nama_column)

 SQL Syntax tidak mengizinkan nilai duplikat:
CREATE UNIQUE INDEX nama_index
ON nama_table (nama_column)


PERCOBAAN

Untuk menguji bahwa proses index dapat mempercepat pencarian suatu value dari suatu query, dalam hal ini kita membutuhkan :

  • Database server : MySQL Server
  • Interface client  : MySQL Yog

Buatlah sebuah database bernama perusahaan dengan syntax sql :
CREATE DATABASE Perusahaan;

Kemudian buat table yang bernama pegawai dengan syntax sql :
CREATE TABLE `pegawai` (
  `NoKTP` int(15) NOT NULL,
  `JenisKel` varchar(10) collate latin1_general_ci NOT NULL,
  `Alamat` varchar(25) collate latin1_general_ci NOT NULL,
  `Gaji` varchar(10) collate latin1_general_ci NOT NULL,
  `NmDepan` varchar(10) collate latin1_general_ci NOT NULL,
  `Inisial` varchar(5) collate latin1_general_ci NOT NULL,
  `NmBlk` varchar(15) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`NoKTP`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci

Misalkan kita akan mencari suatu data pegawai yang berjenis kelamin Laki-laki dan memiliki gaji > 5 juta, seperti query berikut :
SELECT * FROM pegawai WHERE JenisKel="Laki-laki" AND Gaji >5000000;

Perhatikan total waktu yang dibutuhkan oleh query tersebut pada MySQL Yog seperti gambar berikut :

Untuk membandingkan pencarian data dengan index, buatlah sebuah index yang bernama uji seperti syntax sql berikut :
CREATE INDEX uji ON pegawai (JenisKel,Gaji);

Kemudian lakukan kembali data pencarian dengan query yang sama :
SELECT * FROM pegawai WHERE JenisKel="Laki-laki" AND Gaji >5000000;

Lihatlah perbandingannya. Jika tidak ada perbedaan total time dari pencarian cara biasa dengan model index, hal ini dikarenakan datanya yang terlalu sedikit. Usahakan data yang diinput memiliki 1000 ribu bari keatas untuk melihat perbedaannya.
Comment Policy: Silahkan tuliskan komentar Anda yang sesuai dengan topik postingan halaman ini. Komentar yang berisi tautan tidak akan ditampilkan sebelum disetujui.
Buka Komentar
Tutup Komentar