Apa yang perlu dipertimbangkan dalam proses desain indeks, dan bagaimana indeks dapat meningkatkan kinerja kueri? Mohon berikan penjelasan yang mendalam beserta contoh penggunaannya
Dalam desain indeks, beberapa hal yang perlu dipertimbangkan adalah:
- Kolom yang sering digunakan dalam kueri: Indeks paling efektif pada kolom yang sering muncul di WHERE, JOIN, atau ORDER BY.
- Jenis indeks: Pilih indeks sesuai kebutuhan, seperti indeks unik untuk memastikan data tidak duplikat, atau indeks partial untuk subset data.
- Ukuran data: Indeks membutuhkan ruang penyimpanan tambahan, jadi hindari membuat terlalu banyak indeks.
- Frekuensi pembaruan data: Indeks memperlambat operasi INSERT, UPDATE, dan DELETE karena indeks harus diperbarui setiap kali data berubah.
Cara indeks meningkatkan kinerja: Indeks berfungsi seperti daftar isi buku, mempercepat pencarian data tanpa harus membaca semua baris. Misalnya, pencarian pada tabel besar tanpa indeks akan memerlukan full table scan, sedangkan dengan indeks, database dapat langsung menuju lokasi data.
Contoh penggunaan: Misalkan Anda memiliki tabel Customers
:
<span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> Customers (
CustomerID <span class="hljs-type">INT</span>,
Name <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">100</span>),
Email <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">100</span>),
City <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">50</span>)
);