Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Indeks basis data B-Tree vs Bitmap

Dari wikipedia:B-Trees dan indeks bitmap . Kasus penggunaan:

  • B-Trees adalah tipe indeks tipikal yang digunakan saat Anda melakukan CREATE INDEX ... dalam basis data:

    1. Mereka sangat cepat saat Anda memilih hanya sebagian kecil dari data indeks (biasanya maksimal 5%-10%)
  • Mereka bekerja lebih baik bila Anda memiliki banyak nilai indeks yang berbeda.
  • Menggabungkan beberapa indeks B-Tree dapat dilakukan, tetapi pendekatan yang lebih sederhana seringkali lebih efisien.
  • Mereka tidak berguna ketika ada beberapa nilai berbeda untuk data yang diindeks, atau ketika Anda ingin mendapatkan subset data yang besar (biasanya> 10%).
  • Setiap indeks B-Tree memberlakukan penalti kecil saat memasukkan/memperbarui nilai pada tabel yang diindeks. Ini bisa menjadi masalah jika Anda memiliki banyak indeks dalam tabel yang sangat sibuk.

  • Karakteristik ini membuat indeks B-Tree sangat berguna untuk mempercepat pencarian di aplikasi OLTP, saat Anda bekerja dengan kumpulan data yang sangat kecil pada satu waktu, sebagian besar kueri difilter menurut ID, dan Anda menginginkan kinerja serentak yang baik.

  • Indeks bitmap adalah varian indeks yang lebih khusus:

    1. Mereka mengkodekan nilai yang diindeks sebagai bitmap dan sangat hemat ruang.
    2. Cenderung bekerja lebih baik bila ada beberapa nilai indeks yang berbeda
    3. Pengoptimal DB dapat menggabungkan beberapa bitmap yang diindeks dengan sangat mudah, ini memungkinkan eksekusi filter kompleks yang efisien dalam kueri.
    4. Mereka sangat tidak efisien saat memasukkan/memperbarui nilai.


    Indeks bitmap sebagian besar digunakan dalam aplikasi gudang data, di mana database hanya dapat dibaca kecuali untuk proses ETL, dan Anda biasanya perlu menjalankan kueri kompleks terhadap skema bintang , di mana indeks bitmap dapat mempercepat pemfilteran berdasarkan kondisi di tabel dimensi Anda, yang biasanya tidak memiliki terlalu banyak nilai yang berbeda.

Sebagai ringkasan yang sangat singkat:gunakan indeks B-Tree (indeks "default" di sebagian besar basis data) kecuali Anda adalah pengembang gudang data dan tahu Anda akan mendapat manfaat untuk indeks bitmap.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle mengapa membuat pemicu gagal ketika ada bidang yang disebut stempel waktu?

  2. Penyedia Data Oracle Terbaru untuk .NET (11.2.0.3.20) merusak EF Update Wizard

  3. Oracle SEQUENCE.Masalah Currval di CodeIgniter

  4. RETENSI LOB

  5. Memperbarui Tampilan Gabung tanpa mendapatkan Kesalahan Tanpa Kunci yang Diawetkan