Query SQL Terasa Lama: Jalankan Indeks dalam Basis Data  

Pada era digital, penggunaan basis data meningkat karena sangat penting di berbagai bidang. Indeks dalam basis data akan membantu mengelola, menyimpan hingga mengolahnya. Penggunaan metode ini sangat penting untuk membantu menemukan data yang diinginkan dengan cepat, sehingga dapat meningkatkan kinerja secara keseluruhan. 

Apa Itu Indeks dalam Basis Data? 

Semakin rumit sebuah sistem, maka membutuhkan proses yang lebih besar untuk penyimpanannya. Kestabilan performa database harus tetap optimal, sehingga produktivitas tetap terjaga. Jika performa database mulai melambat, Anda perlu mencoba mengoptimalkannya melalui index. Indeks dalam basis data merupakan objek yang akan mempercepat proses pencarian data. 

Saat database Anda susun tanpa menggunakan index, maka kinerja server database yang menurunkannya secara drastis. Resource CPU banyak digunakan mencari data menggunakan metode table-scan

Fungsi index yaitu membantu pencarian data lebih optimal karena tidak banyak menghabiskan resource CPU. Objek struktur data tersebut tidak bergantung pada struktur tabel.  Setiap index terdiri dari nilai kolom dan penunjuk yang berisi nilai. Penunjuk tersebut akan langsung menunjuk baris yang tepat, sehingga menghindari terjadinya full table scan. 

Jika lebih banyak index pada tabel bukan berarti akan mempercepat, query. Sebab, semakin banyak index pada tabel akan membuat proses perintah DML menjadi lebih lambat. Proses melambatnya perintah DML diakibatkan adanya perubahan data, sehingga Anda juga harus menyesuaikannya. 

Kapan Harus Menggunakan Index? 

Ada empat alasan mengapa Anda membutuhkan index, yaitu: 

  • Klausa Where sering menggunakan kolom, terutama dalam kondisi join. 
  • Kolom berisi nilai dengan jangkauan yang luas. 
  • Selain itu, kolom berisi banyak nilai null
  • Tabel berukuran besar akan menampilkan data kurang dari 2 hingga 4 persen. 

Selain itu, Anda perlu memperhatikan beberapa kondisi, di mana index tidak diperlukan kehadirannya, seperti: 

  • Saat menggunakan table kecil. 
  • Dalam query, Anda tidak sering menggunakan kolom. 
  • Saat query menampilkan data lebih dari 2 hingga 4 persen dari keseluruhan data. 
  • Sering update tabel. 

Jenis-Jenis Index 

Mahasiswa Telkom University akan mempelajari dua jenis index yang umum digunakan di kehidupan sehari-hari, seperti: 

Clustered index 

Tipe clustered index hanya menuju pada satu data yang akan diurutkan berdasarkan kolom index. Tipe index ini lebih cepat dalam pengoperasian kecil karena hanya membutuhkan memori kecil. 

Non clustered index 

Sedangkan tipe non clustered index dapat menuju lebih dari satu data dan memiliki struktur baru berasal dari salinan data. Salinan data terpisah, sehingga jenis index ini bekerja lebih lambar dalam perngoperasiannya. Selain itu, perngoperasian non clustered index membutuhkan memori yang lebih dalam. 

Contoh Pengoperasian Index 

Penggunaan index salah satunya pada Oracle yang mendukung beberapa tipe, seperti: 

B-Tree 

B-Tree merupakan tipe standar dari index pada Oracle yang berguna saat memilih row dengan menyesuaikannya pada kriteria tertentu. Index ini bisa Anda buat dengan perintah Create Index.  

Bitmap dan bitmap join index 

Penggunaan index umumnya pada kolom yang memiliki sedikit nilai unik, misalnya jenis kelamin, agama dan status perkawinan. Anda bisa menggunakan index pada point untuk multiple rows

Function based indexes 

Selain menerapkan index pada kolom, Anda bisa menggunakannya pada kolom sebagai fungsi. Function based index yang akan memberi kesempatan beberapa pilihan ketika memilih execution path. Index tidak dapat Anda modifikasi, oleh karena itu harus menghapusnya terlebih dahulu ketika ingin menciptakan yang baru. Untuk menghapusnya, Anda mulai menghapus definisi index dari dictionary menggunakan perintah Drop Index. 

Mengingat fungsi indeks dalam basis data sangat penting, maka Anda harus memahami bagaimana melakukannya.  

Referensi

https://i-3.co.id/index-pada-database/

Penulis : Nisa Amalia Putri I.S

Leave a Reply

Your email address will not be published. Required fields are marked *