Indeks Berkelompok vs Tidak Berkelompok: Perbezaan Utama dengan Contoh

Isi kandungan:

Anonim

Apa itu Indeks?

Indeks adalah kunci yang dibina dari satu atau lebih lajur dalam pangkalan data yang mempercepat pengambilan baris dari jadual atau paparan. Kekunci ini membantu Pangkalan Data seperti Oracle, SQL Server, MySQL, dll untuk mencari baris yang berkaitan dengan nilai utama dengan cepat.

Dua jenis Indeks adalah:

  • Indeks Berkelompok
  • Indeks Tidak Berkelompok

Dalam tutorial ini, anda akan belajar:

  • Apa itu Indeks?
  • Apa itu Indeks Berkelompok?
  • Apa itu Indeks Tidak Berkelompok?
  • Ciri-ciri Indeks Berkelompok
  • Ciri-ciri Indeks Tidak Berkelompok
  • Contoh indeks berkelompok
  • Contoh indeks tidak berkelompok
  • Perbezaan antara Clustered Index dan NonClustered Index
  • Kelebihan Indeks Berkelompok
  • Kelebihan indeks Tidak Berkelompok
  • Kelemahan Indeks Berkelompok
  • Kelemahan indeks Tidak Berkelompok

Apa itu Indeks Berkelompok?

Cluster index adalah sejenis indeks yang menyusun baris data dalam jadual pada nilai-nilai utama mereka. Di Pangkalan Data, hanya ada satu indeks berkelompok setiap jadual.

Indeks berkelompok menentukan urutan data disimpan dalam jadual yang dapat disusun hanya dengan satu cara. Jadi, hanya ada satu indeks berkelompok untuk setiap jadual. Dalam RDBMS, biasanya, kunci utama membolehkan anda membuat indeks berkelompok berdasarkan lajur tertentu.

Apa itu Indeks Tidak Berkelompok?

Indeks Tidak Berkelompok menyimpan data di satu lokasi dan indeks di lokasi lain. Indeks mengandungi petunjuk ke lokasi data tersebut. Satu jadual boleh mempunyai banyak indeks tidak berkelompok sebagai indeks dalam indeks tidak berkelompok disimpan di tempat yang berbeza.

Sebagai contoh, buku boleh mempunyai lebih dari satu indeks, satu di awal yang memaparkan kandungan unit buku dengan bijak manakala indeks kedua menunjukkan indeks istilah dalam urutan abjad.

Indeks bukan kluster ditakrifkan dalam medan tidak susunan jadual. Kaedah pengindeksan jenis ini membantu anda untuk meningkatkan prestasi pertanyaan yang menggunakan kunci yang tidak diberikan sebagai kunci utama. Indeks tanpa kluster membolehkan anda menambahkan kunci unik untuk jadual.

PERBEZAAN UTAMA

  • Cluster index adalah sejenis indeks yang menyusun baris data dalam jadual pada nilai-nilai utama mereka sedangkan indeks Non-kluster menyimpan data di satu lokasi dan indeks di lokasi lain.
  • Indeks berkelompok menyimpan halaman data di simpul daun indeks sementara kaedah indeks Tidak berkelompok tidak pernah menyimpan halaman data di simpul daun indeks.
  • Indeks kluster tidak memerlukan ruang cakera tambahan sedangkan indeks Tidak berkelompok memerlukan ruang cakera tambahan.
  • Indeks kluster menawarkan akses data yang lebih pantas, di sisi lain, indeks Tidak berkelompok lebih perlahan.

Ciri-ciri Indeks Berkelompok

  • Penyimpanan data lalai dan disusun
  • Gunakan hanya satu atau lebih daripada satu lajur untuk indeks
  • Membantu anda menyimpan Data dan indeks bersama
  • Pecahan
  • Operasi
  • Imbasan indeks berkelompok dan pencarian indeks
  • Pencarian Utama

Ciri-ciri Indeks Tidak Berkelompok

  • Simpan nilai utama sahaja
  • Petunjuk ke baris Indeks Tumpukan / Berkelompok
  • Membolehkan akses data Sekunder
  • Jambatan ke data
  • Operasi Imbasan Indeks dan Pencarian Indeks
  • Anda boleh membuat indeks tidak tertutup untuk jadual atau paparan
  • Setiap baris indeks dalam indeks tidak bercantum menyimpan nilai kunci yang tidak disertakan dan pencari baris

Contoh indeks berkelompok

Dalam contoh di bawah, SalesOrderDetailID adalah indeks berkelompok. Contoh pertanyaan untuk mendapatkan data

SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6

Contoh indeks tidak berkelompok

Dalam contoh di bawah ini, indeks tanpa kluster dibuat pada OrderQty dan ProductID seperti berikut

CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)

Pertanyaan berikut akan diambil dengan lebih pantas berbanding dengan indeks berkelompok.

SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714

Perbezaan antara Clustered Index dan NonClustered Index

Parameter Berkelompok Tidak berkelompok
Gunakan untuk Anda boleh menyusun rekod dan menyimpan indeks berkelompok secara fizikal dalam memori mengikut pesanan. Indeks tanpa kluster membantu anda membuat susunan logik untuk baris data dan menggunakan penunjuk untuk fail data fizikal.
Kaedah menyimpan Membolehkan anda menyimpan halaman data di simpul daun indeks. Kaedah pengindeksan ini tidak pernah menyimpan halaman data di simpul daun indeks.
Saiz Ukuran indeks berkelompok agak besar. Ukuran indeks tidak berkelompok kecil berbanding dengan indeks berkelompok.
Mengakses data Lebih pantas Lebih perlahan berbanding dengan indeks berkelompok
Ruang cakera tambahan Tidak dikehendaki Dikehendaki menyimpan indeks secara berasingan
Jenis kunci Secara Lalai Kunci Utama Jadual adalah Indeks Berkelompok. Ia dapat digunakan dengan kekangan unik di atas meja yang berfungsi sebagai kunci komposit.
Ciri utama Indeks berkelompok dapat meningkatkan prestasi pengambilan data. Ia harus dibuat pada lajur yang digunakan untuk bergabung.

Kelebihan Indeks Berkelompok

Kelebihan / kebaikan indeks berkelompok adalah:

  • Indeks berkelompok adalah pilihan yang ideal untuk julat atau kumpulan dengan pertanyaan jenis kiraan maksimum, min,
  • Dalam jenis indeks ini, carian boleh terus menuju ke titik tertentu dalam data sehingga anda dapat terus membaca secara berurutan dari sana.
  • Kaedah indeks berkelompok menggunakan mekanisme lokasi untuk mencari kemasukan indeks pada permulaan julat.
  • Ini adalah kaedah yang berkesan untuk pencarian julat apabila pelbagai nilai kunci carian diminta.
  • Membantu anda untuk meminimumkan pemindahan halaman dan memaksimumkan jumlah cache.

Kelebihan indeks Tidak Berkelompok

Kelebihan menggunakan indeks tidak berkelompok adalah:

  • Indeks tanpa kluster membantu anda mendapatkan data dengan cepat dari jadual pangkalan data.
  • Membantu anda untuk mengelakkan kos overhead yang berkaitan dengan indeks berkelompok
  • Jadual mungkin mempunyai beberapa indeks tidak berkelompok dalam RDBMS. Jadi, ia boleh digunakan untuk membuat lebih dari satu indeks.

Kelemahan Indeks Berkelompok

Berikut, terdapat kekurangan / kekurangan penggunaan indeks berkelompok:

  • Banyak sisipan dalam urutan tidak berurutan
  • Indeks berkelompok membuat banyak pembahagian halaman berterusan, yang merangkumi halaman data dan juga halaman indeks.
  • Kerja tambahan untuk SQL untuk sisipan, kemas kini dan penghapusan.
  • Indeks berkelompok memerlukan masa lebih lama untuk mengemas kini rekod apabila medan dalam indeks berkelompok diubah.
  • Node daun kebanyakannya mengandungi halaman data dalam indeks berkelompok.

Kelemahan indeks Tidak Berkelompok

Berikut, terdapat kekurangan / kekurangan penggunaan indeks yang tidak berkelompok:

  • Indeks tanpa kluster membantu anda menyimpan data mengikut urutan logik tetapi tidak membenarkan menyusun baris data secara fizikal.
  • Proses pencarian pada indeks yang tidak berkelompok menjadi mahal.
  • Setiap kali kunci pengelompokan diperbarui, kemas kini yang sesuai diperlukan pada indeks bukan kluster kerana menyimpan kunci kluster.