Sering sekali saya mendengar keluhan dari pengguna aplikasi web-base
atau aplikasi online yang diakses melalui jaringan internet. Keluhannya seperti
sebuah lagu pop lama yang sering kali kita dengar, yaitu akses database lemot
alias lambat bukan main.
Apa yang harus dilakukan jika aplikasi lambat karena kinerja database
yang lemot dan lambat bukan main? Ada beberapa cara yang bisa kita tempuh
sebagai solusi bagi permasalahan tersebut diatas.
Salah satu hal yang terpenting adalah melakukan INDEXING. Index adalah
sebuah objek dalam sistem database yang
dapat mempercepat proses pencarian (query)
data. Index adalah daftar
isi yang dapat dipakai oleh query tanpa perlu membaca isi
tabel secara langsung.
Index sangat ampuh untuk meningkatkan performa
kecepatan pada akses database. Tujuan adanya indeks dalam database antara lain
adalah untuk mempercepat pencarian data berdasarkan kolom tertentu.
Tanpa adanya sebuah index pada database, kinerja database
sangat menurun dengan sangat signifikan. Hal ini dikarenakan resource CPU banyak digunakan
untuk pencarian data atau pengaksesan query SQL dengan metode table-scan. Index membuat pencarian data akan lebih cepat dan
tidak banyak menghabiskan resource CPU.
Yang perlu kita pahami bahwa index tidak masuk dalam
struktur tabel dalam database dan merupakan obyek struktur data tersendiri.
Dengan index, kita dapat secara langsung menunjuk ke baris yang tepat pada
tabel, sehingga menghindari terjadinya full table-scan.
Index diperlukan pada saat ada kondisi tabel sangat besar, kolom sering digunakan sebagai kondisi dalam query, Kebanyakan query menampilkan
data lebih dari 2-10% dari seluruh data, dan table jarang di-update.
Penggunaan index di table
microsoft sql server pada dasarnya berfungsi untuk mengurutkan data sehingga
proses pencarian set data bisa lebih cepat karena data sudah tersusun dengan
kondisi tertentu.
Ada beberapa perbedaan clustered index dan nonclustered index pada
sql server yaitu dalam clustered index hanya terdiri satu dalam satu table atau
hanya dapat diterapkan satu kali pada satu table, sedangkan nonclustred boleh
lebih dari satu (banyak). Selain itu clustered index lebih cepat karena menyatu
dengan fisik table dan tidak memerlukan memory tambahan sedangkan nonclustered
index memerlukan memory tambahan.
Sepertinya sangat menarik sekali Pak. Ada artikel lanjutannya? Saya menggunakan MySQL sebagai pengelola databasenya.
ReplyDeleteada beberapa artikel terkait ini di blog ini , silakan dinikmati ...:)
Delete