如何在 MongoDB 和 PostgreSQL for GIS 之间进行选择? [关闭]

Posted

技术标签:

【中文标题】如何在 MongoDB 和 PostgreSQL for GIS 之间进行选择? [关闭]【英文标题】:How to choose between MongoDB and PostgreSQL for GIS? [closed] 【发布时间】:2017-06-14 13:21:03 【问题描述】:

我正在尝试查找有关此主题的一些信息,但我找到的大多数文章都是 3 年以上的。我对这方面也很陌生,不知道该问谁。

对于我的特定用例,我根本不是数据库专家,但我之前使用过 MongoDB 几次。我只在一个小项目中使用过一次 PostgreSQL(不涉及 GIS 的东西)。对于它的价值,我现在有少量数据存储到 dynamoDB 中。它有一个地理库,但它只在 Java 中可用,我对 Java 不是很了解。

我的用例相当简单——除了用户个人资料数据之外,我还希望能够查询用户添加的标记。已验证用户当前latLng 等 X 英里范围内的标记。标记除了 latLng 之外还有其他相关数据,例如添加它的用户、标题、描述等。

我的目标是能够使用 Web API 将结果返回到客户端,并在其当前位置 X 英里范围内从最近到最远标记。为此,在 Mongo 和 PostgreSQL 之间,从什么开始会更好?

【问题讨论】:

您不需要为此使用特殊的数据库,尽管在具有地理扩展的数据库中它会更快。您可以使用the Haversine formula。在 SQL 实现中,您可以在 WHERE 子句中添加距离过滤器。 【参考方案1】:

PostgreSQL 可以通过 PostGis 为您提供完整的(地理)空间功能,尽管您的应用程序中可能不需要那么多。

如果您只需要在(lat,lng)点的某个半径范围内快速找到用户,您可以使用earthdistance module 和GIST indexes。

查看How can I speed-up my query on geo-location processes了解详细说明。

还要检查Searching in a Radius using Postgres。


MongoDB 中,您将使用 geoNear 功能和 2dsphere Indexes


PostgreSQL 中的查询非常快速且非常灵活,并且可以很好地扩展。与 MongoDB 相比,您需要做更多的工作来设置它。

无论如何,两者的基本功能都可用,您应该考虑所有其他因素来决定:

您的数据结构是否良好,并且在此结构中几乎没有变化? (更多关于 SQL 的内容) 您需要 ACID(原子性、一致性、隔离性、持久性)保证吗? (更多关于 SQL 的内容) 您需要巨大的水平缩放吗? (更多关于 MongoDB 的内容) 您是否需要一次查询多个表(并连接)? (SQL 端) 您觉得 javascript 和 JSON 比其他任何语言更舒服吗? (MongoDB +) (等等等等)

还要查看 Postgres Outperforms MongoDB and Ushers in New Developer Reality 和 System Properties Comparison MongoDB vs. PostgreSQL 等。

【讨论】:

非常感谢乔阿诺洛。我意识到我的问题被否决了很多,但老实说,很难轻松找到这类信息,而且也很容易消化。感谢您的回复。 如果我可以再问一个问题。目前,我认为我不需要关系数据库,因此我倾向于使用 MongoDB,因为它易于设置和使用。我期待大量初始写入(创建新标记)和大量读取,但除了删除之外,不要期望对现有标记进行很多更新。我认为我的数据模型也很简单,如果需要(如前所述,我对数据库不太了解,我正在尝试构建 PoC),我可以切换到 postgres。您认为这是一种有效的方法吗?谢谢 当您进行概念验证时,通常您的基本需求是让它快速发生,在这种情况下,请选择让您工作得最快的工具。这在很大程度上取决于您以前的背景;你习惯的那种工具。但要小心,不要陷入认为最适合 PoC 的东西就是生产中最好的东西的陷阱…… geoNear 和 geoIntersects 可用于 MongoDB

以上是关于如何在 MongoDB 和 PostgreSQL for GIS 之间进行选择? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 Spring Boot 中将 MongoDb 和 PostgreSql 用于同一模型?

工具PostgreSQL的NoSQL特性表现抢眼,多个方面优于MongoDB

带有 PostgreSQL 的 MongoDB [关闭]

再见 MongoDB,你好 PostgreSQL

活动报名MongoDB + PostgreSQL中文社区南京技术大会即将来袭!

6月数据库排行:PostgreSQL和MongoDB分数罕见下降