Index adalah struktur data yang mengatur record data pada disk untuk mengoptimalkan beberapa jenis operasi pengambilan (retrieval) tertentu. Index secara efektif mengambil semua record yang memenuhi syarat pencarian pada field search key. Index tambahan bisa dibuat pada kumpulan record data tertentu, dengan search key yang berbeda, untuk mempercepat operasi pencarian. Entry data adalah record yang disimpan dalam file index. Pencarian index secara efesien untuk menemukan entri data yang diinginkan, lalu menggunakannya untuk mendapatkan record data.
Pencarian data secara sequensial terhadap record pada tabel akan memeakan waktu yang lama, maka pada dasarnya terdapat 2 macam pengurutan :
• Pengurutan secara indeks (Ordered Indices) : Berdasarkan urutan dari sebuah nilai.
• Pengurutan secara hash (Hash Indices) :Berdasarkan fungsi hash yang digunakan.
Tiap pengurutan memperhatikan faktor faktor , yaitu :
• Tipe Akses (Access time)
Tipe akses dalam mencari record. Yang lebih dipilih tentunya yang lebih efisien.
• Waktu Akses (Insertion time)
Waktu yang dibutuhkan untuk menemukan sebuah record.
• Waktu Hapus (Deletion Time)
Waktu yang dibutuhkan untuk menghapus sebuah item.
• Ruang Spasi (Space Overhead)
Ruang tambahan yang diminta oleh stuktur index.
Ada 2 tipe penguurutan indeks yang digunakan
• Dense index : Semua nilai dari search key muncul pada file index
Kelebihan Desense Indeks adalah mencari lokasi record lebih cepat dibanding sparse index. Sedangkan kekurangan Desense Indeks membutuhkan tempat indeks lebih besar dibanding sparse index dan jika file master berubah, maka file index juga harus dirubah (maintenace lebih sulit dibanding dengan sparse index).
• Sparse index : Hanya sebagian dari nilai search key yang muncul pada file index
Kelebihan Sparse Indeks antara lain membutuhkan tempat indeks lebih kecil dibanding dense index dan maintenace lebih mudah dibanding dengan dense index. Kekurangan Spares Indeks adalah mencari lokasi record lebih lambat dibanding dense index.
Karakteristik index scan, antara lain:
• Index scan digunakan saat definisi dari suatu index tidak dapat menunjuk ke sebuah row yang memenuhi search key yang dimaksud.
• Index scan melakukan scan secara menyeluruh terhadap semua halaman pada non-clustered index. Proses scanning yang dilakukan bukan berarti membaca strukturnya secara keseluruhan, namun hanya membaca daun kemudian menggunakan referen dari page yang discan untuk menuju next pagenya.
• Index scan mirip dengan index seek. Perbedaannya terletak pada cara pencarian yang dilakukan. Seperti yang telah dikatakan sebelumnya, index scan hanya membaca pada level daun, sedangkan index seek membaca dari akar hingga ke daun. Sehingga terkadang index seek akan mendapatkan hasil yang lebih memuaskan dibanding index scan, namun bila data yang ada terlalu besar maka index scan lebih baik performansinya.
Berikut gambar dari hasil yang didapat dari beberapa kali pengujian pada optimasi query di MySQL yang menggunakan B-Tree untuk keperluan index scannya
Estimation cost untuk 5 atribut record 100 dan 5 atribut record 1000
KESIMPULAN
a. Dengan adanya indeks akan mempercepat hasil pencarian meskipun terdapat data yang banyak.
b. Ketika primary indeks ditentukan maka hal tersebut akan mempengaruhi performa yang ada.
c. Pada data yang dibutuhkan banyak record atau banyak atribut, maka proses insert, delete dan search akan menjadi lama karena data yang diproses semakin banyak.
d. Tabel dengan jumlah atribut non-key yang banyak akan membutuhkan waktu akses yang lebih lama dan sebaliknya bila jumlah atriut non-key sedikit, maka waktu akses semakin singkat.
e. Waktu running sewaktu-waktu bias berubah dalam sekali pengujian pada satu record atau satu atribut. Hal ini dipengaruhi oleh proses yang terjadi di dalam computer.
1 komentar:
halo
Posting Komentar