用于存储位置数据(经纬度)和搜索的 postgresql 或 Mongodb?
postgresql or Mongodb for storing location data (lat & long) and search based on?
我有一个系统,我喜欢根据纬度和经度数据找到离某个人最近的人。
我知道如何使用 Mongodb 中的位置数据以及如何通过半径等为每个人找到最近的人。
但我不知道如果我在系统中有大量用户,并且可能会因查询 postgresql 中的位置数据而使我的系统崩溃怎么办?
哪个 dbms 非常适合处理位置数据,Postgresql 或 Mongodb ???
感谢您的帮助。
非常感谢
您所说的查询类型称为 "KNN" 或 "K-nearest-neighbor",PostgreSQL 支持直接使用 GIST 索引。更好的是,PostGIS 支持真正的 KNN,用于对 lat/long(又名地理空间)数据执行 KNN。这是关于在 PostgreSQL 中使用 KNN 和 PostGIS 的一个很好的演示:
https://www.hagander.net/talks/Find%20your%20neighbours.pdf
您可以在此处详细了解 PostGIS 中的 KNN 功能:
https://postgis.net/docs/geometry_distance_knn.html
我不会说哪个数据库更适合您的特定工作负载,因为我不直接了解它,而且无论如何我都会有点偏见,您可能会根据上面的链接猜到。我要说的是,PostgreSQL 在执行这些类型的查询和扩展方面非常高效和快速。
我有一个系统,我喜欢根据纬度和经度数据找到离某个人最近的人。 我知道如何使用 Mongodb 中的位置数据以及如何通过半径等为每个人找到最近的人。 但我不知道如果我在系统中有大量用户,并且可能会因查询 postgresql 中的位置数据而使我的系统崩溃怎么办? 哪个 dbms 非常适合处理位置数据,Postgresql 或 Mongodb ??? 感谢您的帮助。
非常感谢
您所说的查询类型称为 "KNN" 或 "K-nearest-neighbor",PostgreSQL 支持直接使用 GIST 索引。更好的是,PostGIS 支持真正的 KNN,用于对 lat/long(又名地理空间)数据执行 KNN。这是关于在 PostgreSQL 中使用 KNN 和 PostGIS 的一个很好的演示:
https://www.hagander.net/talks/Find%20your%20neighbours.pdf
您可以在此处详细了解 PostGIS 中的 KNN 功能:
https://postgis.net/docs/geometry_distance_knn.html
我不会说哪个数据库更适合您的特定工作负载,因为我不直接了解它,而且无论如何我都会有点偏见,您可能会根据上面的链接猜到。我要说的是,PostgreSQL 在执行这些类型的查询和扩展方面非常高效和快速。