Postgres SELECT DISTINCT skaliert nicht

Postgres SELECT DISTINCT Does Not Scale

Postgres SELECT DISTINCT skaliert nicht

Peter Kraft zeigt anhand einer partitionierten Queue, warum SELECT DISTINCT in Postgres trotz passendem Index langsam bleibt: Die Abfrage liest jede Zeile, die den Prädikaten entspricht, statt pro eindeutigem Partitionsschlüssel nur einen Treffer zu suchen. Die eigentlich einfachste Query entpuppte sich als teuerste des Workloads. Der Beitrag erklärt die Ursache und zeigt Workarounds.

SELECT DISTINCT ist eine harmlos wirkende Klausel, die alle eindeutigen Werte einer Spalte findet. Ihre Performance-Eigenschaften sind jedoch nicht die, die man erwarten würde: Egal wie man die Tabelle indiziert, egal wie wenige eindeutige Werte abzurufen sind, SELECT DISTINCT scannt immer jede Zeile, die den Prädikaten entspricht.

Mehr von diesem Tag

2026-09-26