Sebuah index adalah optional structure yang dikaitkan ke table yang biasanya bisa mempercepat access data. Ketika kita membuat table dengan primary key by default kita otomatis akan di buatkan index b-tree berdasarkan column primary key tersebut.

Benefit of Indexes

Sebuah index bekerja dengan cara menyiapkan jalur tercepat untuk mentukan suatu baris dalam tabel. Jadi dengan begitu akan mempercepat speed of execution bukan fetching data. yang jadi pertannyaan kapan kita harus pakai index?

  1. Column yang kita cari pada where clause sering digunakan dalam suatu query yang mengembalikan sebagian kecil dari seluruh data pada tabel tersebut. sebagai contoh menggunakan klausa =, between, in dan lain-lain.
  2. Ketika ada reference integrity constraint atau foreign key ke tabel lain dengan tujuan mencegah full table lock
  3. ketika ada Unique Constraint, kita bisa membuat sendiri indexnya sesuai dengan kasus terntung (specify index atau all index option) tetepi unique constraint secara default sudah dibuatkan indexnya.

Keys and Columns

Sebuah Key adalah set columns atau expression yang dapat dibuat sebuah index, Yang perlu di ingat adalah key dan juga index itu adalah hal yang berbeda. Index adalah structure store dalam database yang di manage oleh user dengan perintah sql, sedangkan keys adalah logical consept.

Untuk membuat index berikut contohnya:

CREATE [ UNIQUE | BITMAP ] INDEX [ schema. ] index
  ON { cluster_index_clause
     | table_index_clause
     | bitmap_join_index_clause
     }
[ USABLE | UNUSABLE ]
[ { DEFERRED | IMMEDIATE } INVALIDATION ] ;

Composite Indexes

Selain itu, index bisa digunakan multiple columns atau disebut composite index atau concatenated index. Penempatan urutan sangat berpengaruh dalam composite index ini jika kita menggunakan where clauses where (x, y, z) maka kita harus membuat index juga dengan column create index something_idx on tbl_name (x, y, x)

Unique and Nonunique Index

Index dapat bernilai unique dan juga bukan unique

Type of Indexes

Index ada beberapa macam di Oracle, diantaranya:

  1. B-Tree Index
    1. Index-Organized table
    2. Reverse key indexes
    3. Descending Index
    4. B-Tree Cluster Index
  2. Bitmap Index
  3. Function-Based Index
  4. Application Domain Index