【发布时间】:2017-02-17 19:06:17
【问题描述】:
我目前正在规划一个社交媒体应用程序——尤其是后端。 基本上,我有我想使用 SQL 的所有社交方面(我猜是 PostgreSQL),但我也有以列表(多对一)组织的地理位置,这可能会产生最大数量的数据。我知道 PostgreSQL 具有用于 GIS 功能的模块,我最初的想法是只使用 PostgreSQL,只是为了简单起见,因为两个系统的地理位置搜索性能应该大致相同,即使不支持 PostgreSQL。我也可以在PostgreSQL中使用JSON类型,所以它基本上具有MongoDB最明显的优势。
另一方面,我担心可扩展性,因为地理位置将成为最大的数据块,并且表格可能会有成堆的行。
所以我现在的想法是在 MongoDB 中实现地理定位,它具有简单的可扩展性、易于使用的地理定位搜索以及将地理定位的评论/喜欢直接嵌入到文档中,这将使地理定位读取/搜索变得更容易,但又一次我必须将这些数据与来自 SQL 的社交数据结合起来,例如,获取所有评论地理位置的用户,并从 PostgreSQL 获取他们的个人资料信息并“手动”结合它。尽管其中一部分可以在前端完成,但可以为我节省大量资源。
我不确定这个想法的效果如何,也不确定我是否真的在帮自己一个忙。
【问题讨论】:
-
您计划的“地理位置”数量是多少?
-
地理位置是由用户输入的,所以基本上没有限制或取决于整体成功。
-
我相信您的问题没有正确答案。我要做的是尝试估计从 PG 迁移到 MongoDB 的成本,以防万一,并将其与 MongoDB 操作成本的估计值(直到迁移点)进行比较。作为一名开发人员,我更喜欢使用 PostgreSQL,而不是为可能永远不会发生的可扩展性付出任何努力。
标签: mongodb postgresql geolocation scalability database-performance