Ich entwerfe eine Anwendung, die geometrische Formen in einer Datenbank speichern muss. Ich habe das Datenbankverwaltungssystem noch nicht gewählt.Benötige ich einen räumlichen Index in meiner Datenbank?
In meiner Anwendung haben alle Datenbankabfragen eine Bounding-Box als Eingabe, und als Ausgabe möchte ich alle Formen innerhalb dieser Datenbank. Ich weiß, dass Datenbanken mit einem räumlichen Index für diese Art von Anwendung verwendet werden. Aber in meiner Anwendung gibt es nicht irgendwelche Abfragen des Typs "geben Sie mir Objekte in der Nähe von x/y" oder andere komplexere Abfragen, die in einer GIS-Anwendung nützlich sind.
Ich plane eine Datenbank ohne einen räumlichen Index zu haben und haben Abfragen aussehen wie:
SELECT * FROM shapes WHERE x < max_x AND x > min_x AND y < max_y AND y > min_y
und haben einen Index auf den Säulen x (double)
und y (double)
. Solange ich sehen kann, brauche ich nicht wirklich eine Datenbank mit einem räumlichen Index, wie auch immer meine Anwendung dieser Art von Anwendungen ähnlich ist.
Und selbst wenn ich in der Nähe Abfragen haben möchte, dann könnte ich eine ausreichend große Bounding Box um diesen Punkt erstellen. Oder führt dies zu schlechten Leistungen?
Benötige ich wirklich eine räumliche Datenbank? Und wann ist ein räumlicher Index benötigt?
EDIT: Die Suchanfragen tatsächlich ein wenig weiter fortgeschritten als die, die ich oben geschrieben habe, da ich mit geometrischen Formen beschäftigen werde ich Eingabe eine Bounding-Box, die mehrere Formen (mit Begrenzungsrahmen) zurückkehren wird, dass sind innerhalb oder stören die Box in der Abfrage. Aber ich denke immer noch, dass ich dies ohne einen räumlichen Index tun kann, nachdem ich alle guten Antworten gelesen habe.
Was sind die "Kosten" für die Verwendung von Postgis oder Spatiallit? Ich verstehe nicht, warum du sie nicht benutzen willst. – TheSteve0
@ TheSteve0: Ich habe nicht entschieden, welche dbms ich noch verwenden werde. Aber ich möchte mich nicht auf einen mit einem räumlichen Index beschränken. Vielleicht gehe ich für eine verteilte NoSQL-Datenbank anstelle eines RDBMS. – Jonas
Nun, was ist Ihr Anwendungsfall - wenn es Ihnen nichts ausmacht – TheSteve0