Ich habe Standortdaten mit Zeitstempel versehen.Kombinieren von traditionellen und räumlichen Indizes in Postgres
Ich möchte Postgres effizient Abfragen ausführen, die zeitlich und räumlich begrenzt sind. z.B.
select *
from tracking_tags
where ts >= '1990-01-01T00:00:00.000Z'
and ts < '2000-01-01T00:00:00.000Z'
and lat > 40.0
and lat < 50.0
and long < 0.0
and long > -10.0
Wie sollte ich dies aus einer Indexierungssicht nähern?
Ich bin verwirrt, weil ich glaube, ich könnte zwischen einem normalen B-Baum-Index auf ts
und GIST-Index auf lat
/long
POINTs
, aber ich brauche einen Composite-Index (oder möglicherweise zwei) wählen muß.
Nehmen Sie ein Jahrzehnt von Daten mit tausend Datensätzen pro Tag an.
(PS Entschuldige Unsinn SQL, habe ich noch nicht von MySQL zu Postgres schaltete - aber die ist eine Postgres Frage.)
Dies ist keine postgis Abfrage. Sie machen nur Vergleiche von Dezimalzahlen und hier gibt es keine geometrischen oder geografischen Felder. – e4c5