Indeks Clustered vs Non-clustered: Perbedaan Utama dengan Contoh

Daftar Isi:

Anonim

Apa itu Indeks?

Indeks adalah kunci yang dibangun dari satu atau beberapa kolom dalam database yang mempercepat pengambilan baris dari tabel atau tampilan. Kunci ini membantu Database seperti Oracle, SQL Server, MySQL, dll. Untuk menemukan baris yang terkait dengan nilai kunci dengan cepat.

Dua jenis Indeks adalah:

  • Indeks Tergugus
  • Indeks Non-Gugus

Dalam tutorial ini, Anda akan mempelajari:

  • Apa itu Indeks?
  • Apa itu Indeks Tergugus?
  • Apa itu indeks non-cluster?
  • Karakteristik Indeks Tergugus
  • Karakteristik Indeks Non-cluster
  • Contoh indeks berkerumun
  • Contoh indeks non-cluster
  • Perbedaan antara Clustered Index dan NonClustered Index
  • Keuntungan dari Clustered Index
  • Keuntungan dari indeks non-cluster
  • Kerugian dari Clustered Index
  • Kekurangan dari indeks Non-cluster

Apa itu Indeks Tergugus?

Indeks cluster adalah jenis indeks yang mengurutkan baris data dalam tabel berdasarkan nilai kuncinya. Di Database, hanya ada satu indeks berkerumun per tabel.

Indeks berkerumun menentukan urutan penyimpanan data dalam tabel yang dapat diurutkan hanya dengan satu cara. Jadi, hanya ada satu indeks berkerumun untuk setiap tabel. Dalam RDBMS, biasanya, kunci utama memungkinkan Anda membuat indeks berkerumun berdasarkan kolom spesifik tersebut.

Apa itu indeks non-cluster?

Indeks non-cluster menyimpan data di satu lokasi dan indeks di lokasi lain. Indeks berisi petunjuk ke lokasi data itu. Sebuah tabel tunggal dapat memiliki banyak indeks yang tidak berkerumun karena indeks dalam indeks yang tidak berkerumun disimpan di tempat yang berbeda.

Misalnya, sebuah buku dapat memiliki lebih dari satu indeks, satu indeks di awal menampilkan isi dari sebuah unit buku, sedangkan indeks kedua menunjukkan indeks istilah dalam urutan abjad.

Indeks non-pengelompokan didefinisikan di kolom non-ordering pada tabel. Jenis metode pengindeksan ini membantu Anda meningkatkan kinerja kueri yang menggunakan kunci yang tidak ditetapkan sebagai kunci utama. Indeks non-cluster memungkinkan Anda menambahkan kunci unik untuk tabel.

PERBEDAAN UTAMA

  • Indeks cluster adalah jenis indeks yang mengurutkan baris data dalam tabel pada nilai kuncinya sedangkan indeks Non-cluster menyimpan data di satu lokasi dan indeks di lokasi lain.
  • Indeks berkerumun menyimpan halaman data di node daun indeks sementara metode indeks non-cluster tidak pernah menyimpan halaman data di node daun indeks.
  • Indeks cluster tidak memerlukan ruang disk tambahan sedangkan indeks Non-cluster memerlukan ruang disk tambahan.
  • Indeks cluster menawarkan akses data yang lebih cepat, di sisi lain, indeks non-cluster lebih lambat.

Karakteristik Indeks Tergugus

  • Penyimpanan data default dan diurutkan
  • Gunakan hanya satu atau lebih dari satu kolom untuk indeks
  • Membantu Anda menyimpan Data dan indeks bersama
  • Fragmentasi
  • Operasi
  • Pemindaian indeks terkluster dan pencarian indeks
  • Pencarian Kunci

Karakteristik Indeks Non-cluster

  • Simpan nilai kunci saja
  • Pointer ke baris Heap / Clustered Index
  • Memungkinkan akses data Sekunder
  • Menjembatani ke data
  • Operasi Pemindaian Indeks dan Pencarian Indeks
  • Anda dapat membuat indeks nonclustered untuk tabel atau tampilan
  • Setiap baris indeks dalam indeks nonclustered menyimpan nilai kunci nonclustered dan pencari baris

Contoh indeks berkerumun

Dalam contoh di bawah ini, SalesOrderDetailID adalah indeks berkerumun. Contoh kueri untuk mengambil data

SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6

Contoh indeks non-cluster

Dalam contoh di bawah ini, indeks non-cluster dibuat di OrderQty dan ProductID sebagai berikut

CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)

Kueri berikut akan diambil lebih cepat dibandingkan dengan indeks berkerumun.

SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714

Perbedaan antara Clustered Index dan NonClustered Index

Parameter Berkelompok Tidak berkerumun
Digunakan untuk Anda dapat mengurutkan catatan dan menyimpan indeks berkerumun secara fisik di memori sesuai pesanan. Indeks non-cluster membantu Anda membuat urutan logis untuk baris data dan menggunakan pointer untuk file data fisik.
Metode penyimpanan Memungkinkan Anda menyimpan halaman data di node daun indeks. Metode pengindeksan ini tidak pernah menyimpan halaman data di node daun indeks.
Ukuran Ukuran indeks berkerumun cukup besar. Ukuran indeks yang tidak berkerumun lebih kecil dibandingkan dengan indeks berkerumun.
Mengakses data Lebih cepat Lebih lambat dibandingkan dengan indeks berkerumun
Ruang disk tambahan Tidak dibutuhkan Diperlukan untuk menyimpan indeks secara terpisah
Jenis kunci Secara Default Kunci Utama Tabel adalah Indeks Clustered. Ini dapat digunakan dengan batasan unik pada tabel yang bertindak sebagai kunci komposit.
Fitur utama Indeks berkerumun dapat meningkatkan kinerja pengambilan data. Ini harus dibuat pada kolom yang digunakan dalam gabungan.

Keuntungan dari Clustered Index

Keuntungan / keuntungan dari clustered index adalah:

  • Indeks berkerumun adalah opsi ideal untuk rentang atau kelompok dengan kueri jenis hitung maks, min
  • Dalam jenis indeks ini, pencarian dapat langsung menuju ke titik tertentu dalam data sehingga Anda dapat terus membaca secara berurutan dari sana.
  • Metode indeks tergugus menggunakan mekanisme lokasi untuk menemukan entri indeks di awal rentang.
  • Ini adalah metode yang efektif untuk pencarian rentang ketika berbagai nilai kunci pencarian diminta.
  • Membantu Anda meminimalkan transfer halaman dan memaksimalkan cache yang ditemukan.

Keuntungan dari indeks non-cluster

Kelebihan menggunakan indeks non-cluster adalah:

  • Indeks non-pengelompokan membantu Anda mengambil data dengan cepat dari tabel database.
  • Membantu Anda menghindari biaya overhead yang terkait dengan indeks berkerumun
  • Tabel mungkin memiliki beberapa indeks non-cluster di RDBMS. Jadi, ini bisa digunakan untuk membuat lebih dari satu indeks.

Kerugian dari Clustered Index

Berikut adalah kekurangan / kekurangan menggunakan clustered index:

  • Banyak sisipan dalam urutan non-berurutan
  • Indeks berkerumun membuat banyak pemisahan halaman konstan, yang mencakup halaman data serta halaman indeks.
  • Pekerjaan ekstra untuk SQL untuk menyisipkan, memperbarui, dan menghapus.
  • Indeks berkerumun membutuhkan waktu lebih lama untuk memperbarui catatan saat bidang di indeks berkerumun diubah.
  • Node daun sebagian besar berisi halaman data dalam indeks berkerumun.

Kekurangan dari indeks Non-cluster

Berikut adalah kekurangan / kekurangan menggunakan indeks non-cluster:

  • Indeks non-cluster membantu Anda menyimpan data dalam urutan logis tetapi tidak memungkinkan untuk mengurutkan baris data secara fisik.
  • Proses pencarian pada indeks non-cluster menjadi mahal.
  • Setiap kali kunci pengelompokan diperbarui, pembaruan yang sesuai diperlukan pada indeks non-kluster saat kunci pengelompokan disimpan.