Perbedaan antara Clustered dan Indeks Non-cluster
Perbedaan Utama antara Clustered dan Indeks Non-cluster
- Indeks klaster merupakan jenis indeks yang mengurutkan baris data dalam tabel berdasarkan nilai kuncinya, sedangkan indeks non-klaster menyimpan data pada satu lokasi dan indeks pada lokasi lain.
- ClusterIndeks ed menyimpan halaman data di simpul daun indeks, sedangkan metode indeks Non-clustered tidak pernah menyimpan halaman data di simpul daun indeks.
- Indeks kluster tidak memerlukan ruang disk tambahan, sedangkan indeks non-kluster memerlukan ruang disk tambahan.
- Cluster indeks menawarkan akses data yang lebih cepat, sebaliknya indeks Non-clustered lebih lambat.
Apa itu Indeks?
Indeks adalah kunci yang dibuat dari satu atau lebih kolom dalam database yang mempercepat pengambilan baris dari tabel atau tampilan. Kunci ini membantu seperti Database Oracle, SQLServer, MySQL, dll. untuk menemukan baris yang terkait dengan nilai kunci dengan cepat.
Dua jenis Indeks adalah:
- ClusterIndeks ed
- Non-ClusterIndeks ed
Apa itu Clusterindeks ed?
Cluster index adalah jenis indeks yang mengurutkan baris data dalam tabel berdasarkan nilai kuncinya. Dalam Database, hanya ada satu indeks berkelompok per tabel.
Indeks berkelompok menentukan urutan penyimpanan data dalam tabel yang dapat diurutkan hanya dengan satu cara. Jadi, hanya boleh ada satu indeks berkelompok untuk setiap tabel. Dalam RDBMS, biasanya, kunci utama memungkinkan Anda membuat indeks berkelompok berdasarkan kolom tertentu.
Apa itu indeks non-cluster?
Indeks Non-cluster menyimpan data di satu lokasi dan indeks di lokasi lain. Indeks berisi petunjuk ke lokasi data tersebut. Satu tabel dapat memiliki banyak indeks non-cluster karena indeks dalam indeks non-cluster disimpan di tempat yang berbeda.
Misalnya, sebuah buku bisa memiliki lebih dari satu indeks, indeks pertama menampilkan isi buku menurut satuan, sedangkan indeks kedua menampilkan indeks istilah dalam urutan abjad.
Indeks non-cluster didefinisikan dalam bidang non-ordering pada tabel. Jenis metode pengindeksan ini membantu Anda meningkatkan kinerja kueri yang menggunakan kunci yang tidak ditetapkan sebagai kunci utama. Indeks non-clustered memungkinkan Anda menambahkan kunci unik untuk tabel.
Ciri-ciri dari ClusterIndeks ed
- Penyimpanan data default dan terurut
- Gunakan hanya satu atau lebih dari satu kolom untuk indeks
- Membantu Anda menyimpan Data dan mengindeks secara bersamaan
- Fragmentasi
- Operations
- Clustered pemindaian indeks dan pencarian indeks
- Pencarian Kunci
Karakteristik Indeks Non-Kluster
- Simpan nilai kunci saja
- Petunjuk ke Heap/Clustered Baris indeks
- Mengizinkan akses data Sekunder
- Jembatan ke data
- Operations Pemindaian Indeks dan Pencarian Indeks
- Anda dapat membuat indeks non-cluster untuk tabel atau tampilan
- Setiap baris indeks dalam indeks non-cluster menyimpan nilai kunci non-cluster dan penentu lokasi baris
Clustered vs Non-clustered Index di SQL: Perbedaan Utama
Parameters | Clustered | Tidak berkelompok |
---|---|---|
Digunakan untuk | Anda dapat mengurutkan rekaman dan menyimpan indeks berkelompok secara fisik dalam memori sesuai urutannya. | Indeks non-cluster membantu Anda membuat tatanan logis untuk baris data dan menggunakan petunjuk untuk berkas 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 berkelompok cukup besar. | Ukuran indeks tak berkelompok lebih kecil jika dibandingkan dengan indeks berkelompok. |
Pengaksesan data | Lebih cepat | Lebih lambat dibandingkan dengan indeks kluster |
Ruang disk tambahan | Tidak dibutuhkan | Diperlukan untuk menyimpan indeks secara terpisah |
Jenis kunci | Secara Default Kunci Utama Tabel adalah a ClusterIndeks ed. | Ini dapat digunakan dengan batasan unik pada tabel yang bertindak sebagai kunci komposit. |
Fitur utama | Indeks berkelompok dapat meningkatkan kinerja pengambilan data. | Itu harus dibuat pada kolom yang digunakan dalam gabungan. |
Contoh indeks kluster
Dalam contoh di bawah ini, SalesOrderDetailID adalah indeks kluster. Contoh kueri untuk mengambil data
SELECT CarrierTrackingNumber, UnitPrice FROM SalesData WHERE SalesOrderDetailID = 6
Contoh indeks non-cluster
Dalam contoh di bawah, indeks non-cluster dibuat pada OrderQty dan ProductID sebagai berikut
CREATE INDEX myIndex ON SalesData (ProductID, OrderQty)
Kueri berikut akan diambil lebih cepat dibandingkan dengan indeks berkluster.
SELECT Product ID, OrderQty FROM SalesData WHERE ProductID = 714
Keuntungan ClusterIndeks ed
Kelebihan/manfaat indeks berkelompok adalah:
- ClusterIndeks ed adalah opsi ideal untuk rentang atau pengelompokan berdasarkan kueri jenis maks, min, hitungan
- Dalam indeks jenis ini, pencarian dapat langsung menuju titik tertentu dalam data sehingga Anda dapat terus membaca secara berurutan dari sana.
- ClusterMetode indeks ed menggunakan mekanisme lokasi untuk menemukan entri indeks di awal rentang.
- Ini adalah metode yang efektif untuk pencarian rentang ketika rentang nilai kunci pencarian diminta.
- Membantu Anda meminimalkan transfer halaman dan memaksimalkan cache hits.
Keuntungan Indeks Non-Kluster
Keuntungan menggunakan indeks non-cluster adalah:
- Indeks non-pengelompokan membantu Anda mengambil data dengan cepat dari tabel basis data.
- Membantu Anda menghindari biaya overhead yang terkait dengan indeks kluster
- Sebuah tabel mungkin memiliki beberapa indeks non-cluster di RDBMS. Jadi, bisa digunakan untuk membuat lebih dari satu indeks.
Kekurangan dari ClusterIndeks ed
Berikut ini adalah kekurangan/kekurangan penggunaan indeks berkelompok:
- Banyak sisipan dalam urutan tidak berurutan
- Indeks berkelompok menciptakan banyak pemisahan halaman yang konstan, yang menyertakan halaman data serta halaman indeks.
- Pekerjaan ekstra untuk SQL untuk menyisipkan, memperbarui, dan menghapus.
- Indeks berkelompok memerlukan waktu lebih lama untuk memperbarui catatan saat bidang dalam indeks berkelompok diubah.
- Node daun sebagian besar berisi halaman data dalam indeks berkelompok.
Kerugian dari indeks non-cluster
Berikut ini adalah kekurangan/kekurangan penggunaan indeks non-cluster:
- Indeks non-cluster membantu Anda menyimpan data dalam urutan logis namun tidak memungkinkan Anda mengurutkan baris data secara fisik.
- Proses pencarian pada indeks non-cluster menjadi mahal.
- Setiap kali kunci pengelompokan diperbarui, pembaruan terkait diperlukan pada indeks tak terkluster karena indeks tersebut menyimpan kunci pengelompokan.