use*_*992 0 postgresql scalability geolocation mongodb database-performance
我目前正在计划一个社交媒体应用程序 - 尤其是后端.基本上我有我想要使用SQL的所有社交方面(我猜是PostgreSQL),但我也有列表中的地理位置组织(这么多对一),这将很可能得出最大的数据量.我知道PostgreSQL有用于GIS功能的模块,我最初的想法只是为了简单而使用PostgreSQL,只是为了简单起见,因为Geolocation搜索的性能对于两个系统都应该是相同的,如果不支持PostgreSQL的话.我也可以在PostgreSQL中使用JSON Type,因此它基本上具有MongoDB所涵盖的最明显的优势.
另一方面,我担心可伸缩性,因为地理定位将成为最大的数据块,并且表格可能会有很多行.
所以我现在的想法是在MongoDB中实现地理定位,具有易于扩展,易于使用的地理位置搜索,并嵌入例如评论/喜欢地理定位直接进入文档,这将使地理定位读取/搜索更容易,但我再次不得不将这些数据与来自SQL的社交数据相结合,例如,获取评论地理位置的所有用户,并从PostgreSQL获取他们的个人资料信息并"手动"组合它.尽管部分可以在前端完成,但为我节省了大量资源.
我不确定这个想法有多好,如果我真的在那里帮忙.
Rya*_*rty 12
tldr:使用PostgreSQL.
答案很长:
您正在尝试预先优化您甚至不知道的问题.您不知道您将拥有多少个地理位置,您的用户的使用行为是什么,您甚至可能还没有任何用户.
我之前使用过MongoDB并迁移到PostgreSQL.使用"真实"数据库存储高度结构化数据有许多很多功能和好处.我建议谷歌搜索'PostgreSQL vs X'文章,但我发现的总体共识是PGSQL 非常成熟,可靠,高性能和支持.
根据我使用Mongo然后切换到PGSQL的个人经验,除非PGSQL(或其他成熟的SQL数据库)完全失败,否则我将永远不再使用Mongo,而且我花了数月时间修复它.即便如此,我也会仔细研究其他NoSQL数据库.PGSQL有许多令人惊叹的功能和强大的工具,使用起来很愉快.
对于你认为需要Mongo的看似很少的东西,PGSQL可以做,并做得一样好或更好.它具有索引,地理支持,全文索引等原生JSON类型.PGSQL已经存在更长时间并且具有更多支持(对调试,性能调整等有用).
无论您考虑使用哪种技术,如果不这样做,您都无法做出任何明智的决定:
和
所以在这一点上,我会选择更成熟,更强大的工具和设置监控.观察PGSQL的用法和性能,看看它是如何保持的.研究PGSQL的最佳实践.了解它,学习它,深入潜水.当涉及到扩展个人服务时,每个服务都有点独特,并且不适合简单的"我应该使用X还是Y?" 题.
祝好运!
| 归档时间: |
|
| 查看次数: |
1926 次 |
| 最近记录: |