我需要快速查詢來查找某個點的某個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