Ι habe eine Datenbank, wo meine Dokumente nur Points
sind. Ich überlege, einen Geodatenindex hinzuzufügen. Also kann ich entweder aus einer 2dsphere und einer 2d wählen.2Dsphere vs 2D-Index: Was ist "besser"/schneller?
MongoDB.org hat:
2dsphere Indizes unterstützen:
- Calculations on a sphere
- Both GeoJSON objects and legacy coordinate pairs
- A compound index with scalar index fields (i.e. ascending or
descending) as a prefix or suffix of the 2dsphere index field
2d Indizes unterstützen:
- Calculations using flat geometry
- Legacy coordinate pairs (i.e., geospatial points on a flat
coordinate system)
- A compound index with only one additional field, as a suffix of
the 2d index field
Da jedoch alle meine Dokumente Punkte kann ich entweder Eins der Optionen unten in meinem Schema ohne viel Unterschied.
für 2dsphere:
location : {
type : "Point" ,
coordinates : [10,45]
}
oder für 2d Index:
location : [10,45]
Meine Frage kommt zu dem man schneller ist? Ich habe wirklich keine Ahnung, wie ich es messen soll.
Die Frage geht davon aus, dass ich nur ein Quadrat box
von Daten abfragen wollen und kümmern sich nicht für komplexe Polygon gesucht: Entweder mit $box die nur durch den 2D-Index unterstützt wird oder mit dem $polygon Methode (wenn ich richtig gelesen) $geoWithi n wird von beiden Indizes unterstützt.
Warum Sie mit beiden Indizes Typen/Abfragen und einige Daten in einem dev/Staging-Umgebung nicht testen? Sie sollten die Leistung über mehrere Iterationen hinweg mitteln, um sicherzustellen, dass die Daten in den Arbeitsspeicher geladen werden, und es gibt einen faireren Vergleich. Ich erwarte, dass es vorzuziehen ist, den neueren '2dsphere' Index zu verwenden, aber ich habe keinen Leistungsvergleich gesehen. – Stennie