Perbezaan antara B-Tree dan Bitmap

B-Tree dan Bitmap

Terdapat dua jenis indeks yang digunakan dalam Oracle. Ini adalah B-Tree dan Bitmap. Indeks ini digunakan untuk penalaan prestasi, yang sebenarnya membuat mencari rekod dan mengambilnya dengan cepat. Fungsi indeks membuat entri untuk semua nilai yang muncul dalam lajur yang diindeks. Indeks B-Tree adalah jenis yang digunakan oleh sistem OLTP dan yang terutama dilaksanakan secara lalai. Bitmap, sebaliknya, datang sebagai format indeks yang sangat dimampatkan yang, dalam kebanyakan kes, digunakan dalam gudang data.

Bitmap boleh secara amnya dirujuk sebagai kaedah mengindeks walaupun faedah prestasi dan simpanan simpanan boleh dicari. Penggunaannya, seperti yang dinyatakan sebelumnya, adalah terutamanya dalam persekitaran pergudangan data. Alasannya adalah kerana kemas kini data tidak seperti kerap dan pertanyaan ad hoc lebih banyak di alam sekitar. Dalam pelaksanaan Bitmap, data kardinal yang rendah adalah pilihan. Bitmap adalah pilihan pilihan untuk item lajur yang mempunyai pilihan rendah seperti jantina, yang hanya mempunyai 2 nilai dan lebih disukai. Data statik dalam gudang juga merupakan ciri yang baik dari data yang akan dilaksanakan dengan baik menggunakan Bitmap. Ciri lain Bitmap ialah aliran bit yang setiap bit dilaksanakan pada nilai lajur dalam satu baris satu jadual.

Indeks B-tree, sebaliknya, adalah indeks yang dibuat pada lajur yang mengandungi nilai yang sangat unik. Indeks B-Tree mempunyai entri yang diperintahkan dimana setiap entri mempunyai nilai kunci carian dan penunjuk yang merujuk kepada baris dan nilai yang diberikan. Sekiranya pelayan mendapati kekangan yang sepadan yang berkaitan dengan nilai yang dipersoalkan, penunjuk digerakkan untuk mengambil baris.

Salah satu perbezaan antara keduanya adalah bahawa terdapat pertindihan yang rendah dan kepelbagaian yang tinggi dalam B-Tree manakala sebaliknya berlaku dalam Bitmap. Bitmap mempunyai contoh-contoh duplikasi yang tinggi dan ketenangan rendah. Indeks Bitmap dilihat berfaedah berbanding indeks B-Tree, kerana ia mempunyai jadual yang mempunyai berjuta-juta baris sebagai lajur yang ditentukan mempunyai kardinaliti yang rendah. Oleh itu, indeks dalam Bitmap menawarkan prestasi yang lebih baik berbanding indeks B-Tree.

B-Trees seolah-olah sangat cepat apabila set data kecil dikumpulkan, dalam kebanyakan kes, data tidak sepatutnya melebihi 10% daripada saiz pangkalan data. Kedua-dua ini bekerja bersama apabila terdapat banyak nilai yang berbeza diindeks. Ia juga unik kepada B-Tree yang beberapa indeks dapat digabungkan untuk menghasilkan program yang sangat berkesan. Bitmap, sebaliknya, cenderung untuk berfungsi dengan baik apabila terdapat nilai terindeks yang lebih rendah untuk kecekapan maksimum.

Pokok-B adalah miskin ketika datang untuk mencari subset data yang lebih besar yang melebihi 10% dari data subset. Bitmap mengambil cabaran ini untuk memberikan hasil yang berkualiti tinggi, kerana ia berfungsi lebih baik apabila terdapat beberapa nilai yang berbeza.

Sekiranya terdapat banyak indeks dalam jadual sibuk dengan menggunakan B-Tree, masalah boleh timbul akibat hukuman kecil yang dikenakan apabila memasukkan data yang diindeks atau sekiranya anda perlu memasukkan dan mengemas kini data yang diindeks. Ini tidak masalah dengan Bitmap, kerana ia sangat berkesan dalam memasukkan dan mengemas kini nilai, apa pun saiz yang dipersoalkan.

Ringkasan

B-Tree dan Bitmap adalah dua jenis indeks yang digunakan dalam Oracle
Bitmap adalah satu kaedah mengindeks, menawarkan faedah prestasi dan simpanan simpanan
Indeks B-Tree adalah indeks yang dibuat pada lajur yang mengandungi nilai yang sangat unik
B-Tree berfungsi dengan baik dengan banyak nilai terindeks yang berbeza
Bitmap berfungsi dengan baik dengan banyak nilai terindeks yang berbeza