Dokumen tersebut membahas tentang pengertian dan kegunaan indexing pada database. Indexing digunakan untuk mempercepat pencarian data dan meningkatkan kinerja database dengan cara menyimpan rujukan ke baris data. Beberapa jenis index yang disebutkan antara lain B-tree, bitmap, function-based, dan partitioned indexes.
1. NIM : 1311511354
Nama : Samsul Arifin
Mata Kuliah : Rekayasa Web
Penjelasan Indexing pada Database
Pengertian Tentang Indexing pada Database
Di dalam Database, ada istilah indeks (index), secara gambaran indeks dapat dibayangkan sebagai indeks
buku, sehingga lelalui indeks buku tersebut dapat dicari letak item tertentu dalam buku dengan mudah.
Keberadaan indeks dalam basis data antara lain adalah untuk mempercepat pencarian data berdasarkan
kolom tertentu.
Sebuah indeks database adalah struktur data yang meningkatkan kecepatan operasi pengambilan data
pada tabel database. Indeks digunakan untuk mempercepat menemukan data tanpa harus mencari setiap
baris dalam tabel database setiap kali tabel database diakses. Indeks dapat dibuat menggunakan satu atau
lebih kolom dari tabel database, menyediakan dasar untuk kedua pencarian acak yang cepat dan akses
yang efisien dari urutan record.
Saat database dibuat tanpa menggunakan index, maka kinerja server database dapat menurun secara
drastis. Hal ini dikarenakan resource komputer banyak digunakan untuk pencarian data atau
pengaksesan query SQL dengan metode table-scan. Index pada kolom-kolom tabel database mempunyai
fungsi seperti indeks kamus atau buku. Hal ini membuat pencarian data akan lebih cepat dan tidak banyak
menghabiskan resource komputer.
Sebenarnya index di dalam database itu sangat perlu sekali karena index di database merupakan sebuah
kunci yang digunakan untuk mencari tabel beserta record nya, seorang programmer khususnya dalam
bidang database tidak lupa untuk menciptakan sebuah index karena digunakan untuk memudahkan proses
pembuatan project.
Berikut ini adalah beberapa alasan kenapa index diperlukan:
- Kolom sering digunakan dalam klausa WHERE atau dalam kondisi join
- Kolom berisi nilai dengan jangkauan yang luas
- Kolom berisi banyak nilai null
- Beberapa kolom sering digunakan dalam klausa WHERE atau dalam kondisi join
- Tabel berukuran besar dan sebagian besar query menampilkan data kurang dari 2-4%.
Perlu diperhatikan bahwa terdapat beberapa kondisi dimana tidak diperlukan kehadiran index, yaitu
ketika:
- Table kecil
- Kolom tidak sering digunakan sebagai kondisi dalam query
- Kebanyakan query menampilkan data lebih dari 2-4% dari seluruh data
- Table sering di-update
2. Database oracle mampu mendukung beberapa tipe index yaitu:
1. B*-Tree
Suatu B*-tree adalah tipe standar dari index yang tersedia pada Oracle, dan itu sangat berguna pada saat
memilih row yang sesuai dengan kriteria tertentu. Index jenis ini bisa dibuat dengan perintah CREATE
INDEX.
Contoh: CREATE INDEX nama_pegawai_idx ON pegawai(nama);
2. Bitmap index
Index yang biasa digunakan untuk kolom yang memiliki sedikit nilai yang unik, seperti jenis kelamin,
agama, atau status perkawinan.
Contoh: CREATE BITMAP INDEX jenis_kelamin_idx ON biodata (jenis_kelamin);
3. Function-based indexes
Selain melakukan index terhadap kolom, seperti kolom Nama misalnya, maka dapat meng-index suatu
kolom yang berbasis fungsi. Function-based index akan memberikan kesempatan bagi
Oracle optimizer beberapa pilihan ketika memilih execution path.
Contoh: CREATE INDEX total_gaji_idx ON penggajian (gaji_pokok + bonus);
4. Revers Key Index
Index yang digunakan untuk data yang sangat beragam(unik) atau increment.
Contoh: CREATE INDEX nomor_ktp_idx ON biodata (nomor_ktp) REVERSE;
5. Partitioned indexes
Partition index dapat digunakan untuk mendukung partitioned tables atau untuk menyederhanakan index
management. Index partition dapat bersifat lokal bagi partisi tabel atau dapat pula bersifat global yang
berpengaruh pada seluruh tabel.
6. Text indexes
Meng-index nilai text untuk mendukung peningkatan pada kemampuan pencarian, seperti pencarian frase
dan lain sebagainya. Text indexes merupakan himpunan dari tabel dan indexyang dipelihara oleh Oracle
untuk mendukung pencarian teks yang sangat kompleks. Oracle Database 10g menawarkan peningkatan
pada text indexes yang mana menyederhanakan proses administrasi dan pemeliharaannya.
Menghapus index
Index tidak dapat dimodifikasi. Maka harus menghapusnya terlebih dahulu dan menciptakannya kembali.
Definisi index dapat dihapus dari data dictionary dengan perintah DROP INDEX.
Contoh: DROP INDEX employee_last_name_idx;
3. MySQL memiliki beberapa tipe dari Index yang berbeda, yaitu :
1.INDEX.
2.UNIQUE
3.PRIMARY KEY
4.FULLTEXT index