PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Memahami indeks bitmap di postgresql

Bitmap halaman dibuat secara dinamis untuk setiap kueri. Itu tidak di-cache atau digunakan kembali, dan dibuang di akhir pemindaian indeks bitmap.

Tidak masuk akal untuk membuat bitmap halaman terlebih dahulu karena isinya bergantung pada predikat kueri .

Katakanlah Anda sedang menelusuri x=1 and y=2 . Anda memiliki indeks b-tree pada x dan y . PostgreSQL tidak menggabungkan x dan y menjadi bitmap kemudian mencari bitmap. Ini memindai indeks x untuk alamat halaman semua halaman dengan x=1 dan membuat bitmap di mana halaman yang mungkin berisi x=1 benar. Kemudian memindai y mencari alamat halaman di mana y mungkin sama dengan 2 , membuat bitmap dari itu. Kemudian AND membuat mereka menemukan halaman di mana keduanya x=1 dan y=2 mungkin benar. Akhirnya, ia memindai tabel itu sendiri, hanya membaca halaman yang mungkin berisi nilai kandidat, membaca setiap halaman dan hanya menyimpan baris di mana x=1 and y=2 .

Sekarang, jika Anda mencari sesuatu seperti indeks bitmap yang dibuat sebelumnya dalam cache, ada hal seperti itu di PostgreSQL 9.5:indeks BRIN . Ini ditujukan untuk tabel yang sangat besar, dan menyediakan cara untuk menemukan rentang tabel yang dapat dilewati karena diketahui tidak berisi nilai yang diinginkan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat menyelesaikan Flask-Migration

  2. Benar-benar menyalin tabel postgres dengan SQL

  3. Heroku - bagaimana cara menarik data dari database ke database lokal?

  4. di postgres, dapatkah Anda mengatur pemformatan default untuk stempel waktu, berdasarkan sesi atau secara global?

  5. Cara mengkonfigurasi postgresql postgresql.conf listen_addresses untuk beberapa alamat ip