6 Stimmen

Postgres ANTI-JOIN braucht Table-Scan?

Ich benötige einen ANTI-JOIN (nicht existiert SELECT something from table.../ left join table WHERE table.id IS NULL) für dieselbe Tabelle. Eigentlich habe ich einen Index, um die Frage "not exists" zu bedienen, aber der Abfrageplaner entscheidet sich für einen Bitmap-Heap-Scan.

Die Tabelle hat 100 Millionen Zeilen, so dass ein Heap-Scan nicht möglich ist...

Es wäre wirklich schnell, wenn Postgres mit den Indikatoren vergleichen könnte. Muss Postgres die Tabelle für dieses ANTI-JOIN besuchen?

Ich weiß, dass der Tisch irgendwann besucht werden muss, um das MVCC zu bedienen, aber warum so früh? Kann NOT EXISTS nur von der Tabelle behoben werden, weil sie sonst etwas übersehen könnte?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X