PostGIS-Abfrage gegen QGIS-Filter

8

Ich habe einen PostGIS-Datensatz mit ungefähr 3 Millionen Formen. Ich muss zu einem bestimmten Zeitpunkt nur etwa 1.500 dieser Formen anzeigen, aber die Formen, die ich sehen muss, hängen davon ab, welche Funktion in einem anderen Datensatz ausgewählt ist.

Meine Frage ist: Was ist der Geschwindigkeitsunterschied zwischen dem Filtern meines großen Datasets in PostGIS und dem anschließenden Bereitstellen an QGIS, dem Laden des gesamten Datasets in QGIS und dem anschließenden Filtern der eingebauten Ebene? Ich verwende PostGIS 2 und QGIS 1.8.

Ich gehe davon aus, dass PostGIS schneller ist, aber wie viel schneller? Ich möchte eine zweite Meinung, bevor ich meine Zeit damit verbringe, eine Lösung über die andere zu codieren. Vielen Dank!

spencerrecneps
quelle

Antworten:

7

Durch Filtern (dh Verwenden von Layer / Query oder des Query Builder in Layereigenschaften) in QGIS justs wird der ausgeführten Abfrage eine where- Klausel hinzugefügt . Das sollte also nicht anders sein, als Sie es "in" PostGIS tun möchten. Obwohl ich nicht sicher bin, was Sie dort vorhaben.

jef
quelle
Bedeutet das also, dass der Ebenenfilter in QGIS tatsächlich auf Datenbankebene filtert, oder passiert im Programm etwas unter der Haube? Ich hatte angenommen, dass es einen Unterschied gab.
Spencerrecneps
1
Ja, auf Datenbankebene. Es gibt zwar einige Stellen, an denen Sie möglicherweise erwarten, dass QGIS auch auf Datenbankebene filtert, dies jedoch nicht (z. B. bei der Suche in der Attributtabelle). Dies geschieht jedoch, nachdem der "Abfragefilter" bereits auf Datenbankebene angewendet wurde.
Jef