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

Apa yang dimaksud dengan pemindaian tumpukan Bitmap dalam paket kueri?

Penjelasan terbaik datang dari Tom Lane, yang merupakan penulis algoritme kecuali saya salah. Lihat juga artikel wikipedia.

Singkatnya, ini seperti pemindaian seq. Perbedaannya adalah, daripada mengunjungi setiap halaman disk, indeks bitmap memindai AND dan OR indeks yang berlaku bersama-sama, dan hanya mengunjungi halaman disk yang diperlukan.

Ini berbeda dari pemindaian indeks, di mana indeks dikunjungi baris demi baris secara berurutan -- artinya halaman disk mungkin dikunjungi beberapa kali.

Re:pertanyaan di komentar anda... Ya, itu saja.

Pemindaian indeks akan melewati baris satu per satu, membuka halaman disk berulang kali, sebanyak yang diperlukan (beberapa tentu saja akan tetap berada di memori, tetapi Anda mengerti maksudnya).

Pemindaian indeks bitmap secara berurutan akan membuka daftar pendek halaman disk, dan mengambil setiap baris yang berlaku di setiap baris (karenanya disebut pemeriksaan ulang yang Anda lihat dalam paket kueri).

Perhatikan, sebagai tambahan, bagaimana pengelompokan/urutan baris memengaruhi biaya terkait dengan salah satu metode. Jika baris ada di mana-mana dalam urutan acak, indeks bitmap akan lebih murah. (Dan, sebenarnya, jika mereka benar-benar semua di tempat lain, pemindaian seq akan menjadi yang termurah, karena pemindaian indeks bitmap bukannya tanpa biaya tambahan.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat urutan partisi PostgreSQL?

  2. Mengkompilasi ekstensi mongo_fdw yang dapat ditulis pada format biner instalasi PostgreSQL.

  3. Kapan menggunakan tabel yang diwarisi di PostgreSQL?

  4. PostgreSQL buat tabel jika tidak ada

  5. Gunakan beberapa konflik_target dalam klausa ON CONFLICT