Verständnis bitmap-Indizes in postgresql
PostgreSQL 9.4
Ich nur gestoßen, die Knoten genannt Bitmap Index Scan
und das Konzept der so genannten zugrunde liegenden bitmap-Datenstruktur erwähnt in diesem Beitrag. Soweit ich weiß, PostgreSQL
nicht unterstützt erstellen von bitmap-Indizes.
Frage: So dass jede Zeit, die wir brauchen, um die bitmap-Daten-Struktur zur Durchführung Bitmap Index Scan
, müssen wir bauen, es zum ersten oder PostgreSQL schafft es beim Bau einer btree
index und baut es jederzeit, wenn die Tabelle geändert hat?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die bitmap-Seiten wird dynamisch erzeugt, die für jede Abfrage. Es ist nicht im Cache gespeichert oder wieder verwendet, und wird verworfen, am Ende des bitmap-index-scan.
Es nicht sinnvoll ist, um die Seite zu erstellen bitmap im Voraus, denn deren Inhalt hängen von der query-Prädikate.
Sagen, Sie bist Suche für
x=1 and y=2
. Sie haben b-Baum-Indizes aufx
undy
. PostgreSQL nicht kombinierenx
undy
in eine bitmap, dann suchen Sie die bitmap. Es scannt indexx
für die Adresse der Webseite, von allen Seiten mitx=1
und macht eine bitmap, wo die Seiten, die möglicherweise enthaltenx=1
wahr sind. Dann scannt esy
auf der Suche für die Seite " Adressen, woy
könnte gleich2
, wodurch eine bitmap aus, die. Dann ist es ANDs, Sie zu finden, Seiten, auf denen beidex=1
undy=2
wahr sein könnte. Endlich, es durchsucht die Tabelle selbst Lesen, nur die Seiten, die möglicherweise enthalten die Kandidaten-Werte, Lesen Sie jede Seite und halten nur die Zeilen, in denenx=1 and y=2
.Nun, wenn Sie auf der Suche nach etwas wie ein Cache, vorgefertigte bitmap-index, so etwas gibt es in PostgreSQL 9.5: BRIN Indizes. Diese sind gedacht für sehr große Tabellen, und bieten einen Weg zu finden, reicht der Tabelle, die werden übersprungen, weil Sie weiß, dass Sie nicht enthalten einen gewünschten Wert ein.
Die bitmap-Daten-Seiten aus index oder mehrere Indizes auf Nachfrage (per Abfrage). Es wird verwendet, wenn der index gibt mehr als weniger Zeilen, oder wenn zwei oder mehrere Indizes verwendet werden, auf der gleichen relation. Der Inhalt der bitmap-Steuerungen, welche Seiten bearbeitet werden sollen und welche Seiten übersprungen werden sollen.
Die grundlegende Anforderung an diese scan-Methode ist bestehenden Indexes auf der Tabelle.
Bitmap Heap Scan
?