我试图找到一些关于这个主题的信息,但我找到的大多数文章都是3岁以上的.我对这方面的事情也相当陌生,不确定该问谁.

就我的特定用例而言,我根本不是数据库专家,但我以前使用过几次MongoDB.我只在一个小项目中使用过PostgreSQL一次(不涉及GIS内容).无论如何,我现在有少量数据存储到DynamoDB中.有一个用于它的geo库,但它只在Java中可用,我对Java不是很了解.

我的用例相当简单-除了用户配置文件数据之外,我还希望能够查询用户添加的标记.在认证用户当前latLng的X英里内的标记,等等.标记具有除latLng之外的其他与其相关联的数据,例如添加它的用户、标题、描述等.

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

推荐答案

PostgreSQL可以通过PostGis为您提供完整的(地理)空间功能,尽管您可能需要not在您的应用程序中.

如果您只需要快速找到某个(后来,LNG)点特定半径内的用户,则可以使用earthdistance moduleGIST indexes.

有关详细说明,请查看How can I speed-up my query on geo-location processes.

再查一下Searching in a Radius using Postgres美元.


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


PostgreSQL中的查询速度非常快,非常灵活,而且扩展性非常好.与使用MongoDB相比,您需要做更多的工作来设置它.

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

  • 您的数据是否 struct 良好,并且在这种 struct 中几乎没有变化?(更多关于SQL方面)
  • 您需要ACID(原子性、一致性、隔离性、耐久性)保证吗?(有关SQL方面的更多信息)
  • 您需要巨大的水平zoom 吗?(更多关于MongoDB方面的内容)
  • 您是否需要一次查询多个表(并连接)?(SQL端)
  • 您觉得使用JavaScript和JSON比使用任何其他语言都更舒服吗?(MongoDB+)
  • (等等等等)

还有Postgres Outperforms MongoDB and Ushers in New Developer RealitySystem Properties Comparison MongoDB vs. PostgreSQL,还有许多其他的.

Database相关问答推荐

当某些 node 死亡时,mongo 副本集选举如何表现?

用于在 Excel 中的两个列表之间进行筛选的辅助列

华为Appcube中的对象字段类型

如何以编程方式将产品添加到 Opencart 数据库

什么技术对处理数百万条记录最有效?

在 PostgreSQL 中使用 pg_notify(text, text) 监听/通知

如何在大型数据库中使用 typeahead.js

如何处理 SQL Server 中列名中的空格?

将 Android Room 数据库与 Firebase 实时数据库相关联

对于 Postgres (Windows),有没有像 TOAD 一样好的东西?

MySQL是否允许使用点创建数据库?

SQL 中的 CAST 和 CONVERT 是否相同?

如何配置 NLog 以写入数据库?

维护 mgo 会话的最佳实践

QSqlDatabase & QSqlQuery 的正确方法是什么?

Firebase 排行榜排名

使用带有联合和 CLOB 字段的 Select 时出现错误 ORA-00932

如何使用 group_concat 引用值

数据库与纯文本

获取 SQL Server 2008 中新插入行的主键