我需要快速查询来查找某个点的某个GPS半径内的所有文档。半径会很小,精度也不是那么重要,所以我不需要考虑球面几何。将会有很多写道。 2ds索引比2dsphere更好吗?2dsphere vs 2d索引性能
回答
如果您绝对不需要球形几何或复合地理索引中的多个字段(请参阅MongoDB手册中的Geospatial Indexes的注释),2d
索引更合适。在将坐标保存为传统对(经度,纬度)而不是GeoJSON点方面也存在轻微的存储优势。这可能不足以显着影响您的写入性能,但这取决于“大量写入”的含义以及这些是否会推动您的I/O限制。
我不确定不同地理索引类型查询的相对性能,但您可以在自己的开发/分期环境中轻松设置代表性测试用例进行比较。确保您在多次迭代中平均测量值,以便将文档加载到内存中并进行公平比较。
您可能还需要考虑haystack index
,其设计结合在小范围内返回的2D查询结果与附加的现场条件(例如,“找到餐馆附近经度,纬度”) 。如果您没有按准确程度或按距离排序(并且有额外的搜索字段),则此索引类型可能适合您的用例。
2dsphere is now version 3 after MongoDB 3.2
2dsphere是https://jira.mongodb.org/browse/SERVER-18056
更多的细节更好
数据:https://www.mongodb.com/blog/post/geospatial-performance-improvements-in-mongodb-3-2
3.1.6 - 2dsphere V2
“executionTimeMillis”:1875年,
“totalKeysExamined”:24335,
“totalDocsExamined”:41848,
重新索引
3.1.6后 - 2dsphere V3
“executionTimeMillis”:94,
“totalKeysExamined “:21676,
”totalDocsExamined“:38176,
与2d相比较
3.1。6 - 2D
“executionTimeMillis”:359,
“totalKeysExamined”:95671,
“totalDocsExamined”:112968,
- 1. 2dsphere vs 2d索引:哪个“更好”/更快?
- 2. 找不到任何特殊索引:2d(需要索引),2dsphere(需要索引)
- 3. MongoError:找不到任何特殊索引:2d(需要索引),2dsphere(需要索引)
- 4. elasticsearch性能搜索单索引vs多个索引
- 5. Solr索引时间vs性能
- 6. 索引性能BigInt有VS的VarChar
- 7. Mongoose setDefaultsOnInsert和2dsphere索引不起作用
- 8. spring mongo支持geoJSOn for 2dsphere索引
- 9. 使用2dsphere索引和IP地址索引对mongodb集合进行索引
- 10. mysql索引性能
- 11. Lucene索引性能
- 12. Solr索引性能
- 13. mongodb搜索索引性能
- 14. Geonear和多个2dsphere指标
- 15. Ruby 2D索引器
- 16. Mongoose - 2dsphere index - howto
- 17. MongoDB的索引和非索引性能
- 18. mongo:“2d”索引和正常索引
- 19. Mongodb 2.4 2dsphere查询很慢
- 20. 与mongodb 2dsphere独特索引重复的关键错误
- 21. 包含多个位置的MongoDB和2dsphere索引
- 22. Mongoose - 如何在自定义类型上添加2dsphere索引?
- 23. 2dsphere在这个多边形上的mongodb索引失败
- 24. Mongoose/MongoDB - 一些坐标对不再使用2dsphere索引
- 25. CouchDB查看索引性能
- 26. MySQL索引建立性能
- 27. elasticsearch索引性能不佳
- 28. SqlDataReader的索引性能
- 29. 创建索引的性能
- 30. NSFetchedResultsController性能与UITableView索引
谢谢,这是我的想法,但有些蒙戈文档的制作听起来像2d索引更多的是传统规定。 – user1055568