ver practices indexes index delete create compound best mongodb mongodb-indexes

delete - mongodb indexes best practices



Índice 2dsphere vs 2d: ¿cuál es "mejor"/más rápido? (1)

Ι tengo un db donde mis documentos son solo Points . Considero agregar un índice geoespacial. Así que puedo elegir entre un 2dsphere y un 2d .

MongoDB.org tiene:

Los índices de 2dsphere soportan:

- 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 índices de apoyo:

- 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

Sin embargo, ya que todos mis documentos son puntos, puedo tener una de las siguientes opciones en mi esquema sin mucha diferencia.

para 2dsphere:

location : { type : "Point" , coordinates : [10,45] }

o para el índice 2d:

location : [10,45]

Mi pregunta se reduce a cuál es más rápido? Realmente no tengo ni idea de cómo medirlo.

La pregunta asume que solo quiero consultar una box cuadrada de datos y no me interesan las búsquedas complejas de polígonos: con $box que solo es compatible con el índice 2d (si leo correctamente) o con el método $polygon de $geoWithi n apoyado por ambos índices.


Además de la investigación que ya ha hecho, solo quería agregar otra diferencia que he encontrado entre estos dos índices.

De manera predeterminada, un índice 2d en pares de coordenadas heredadas usa 26 bits de precisión, que es aproximadamente equivalente a 2 pies o 60 centímetros de precisión usando el rango predeterminado de -180 a 180. La precisión se mide por el tamaño en bits de los valores de geohash utilizado para almacenar datos de ubicación. Puede configurar índices geoespaciales con hasta 32 bits de precisión.

db.<collection>.ensureIndex( {<location field> : "<index type>"} , { bits : <bit precision> } )

Fuente: MongoDB doc reference