我目前正在计划一个社交媒体应用程序,尤其是后端。基本上,我有我想要使用SQL (PostgreSQL )的所有社会方面,但我也有地理位置组织在列表(如此之多-一对一),这可能是最大的数据积累。我知道PostgreSQL有用于地理信息系统功能的模块,我最初的想法是只对任何事物使用PostgreSQL,只是为了简单起见,而且地理位置搜索的性能对于这两个系统都应该是相同的,甚至不支持PostgreSQL。我还可以在PostgreSQL中使用JSON,因此它基本上具有MongoDB所涵盖的最明显的优点。
另一方面,我支持可伸缩性,因为地理位置将成为最大的数据块,而表可能会有大量的行。
因此,我现在的想法是在MongoDB中实现地理定位,它具有易于扩展性、易于使用的地理位置搜索和将注释/喜欢等嵌入到文档中,这将使地理位置的读取/搜索更加容易,但我不得不再次将这些数据与SQL中的社交数据结合起来,例如从PostgreSQL中获取所有评论地理位置的用户的配置文件信息,并‘手动’组合它。尽管可以在前端完成部分工作,但也为我节省了大量资源。
我不知道这个主意有多好,是不是真的帮了我一个忙。
发布于 2016-10-13 16:25:18
使用PostgreSQL。
较长的答覆:
你正试图对一个你甚至不知道你是否会遇到的问题进行预优化。您不知道您将拥有多少地理位置,您的用户的使用行为如何,您甚至可能还没有任何用户。
我以前使用过MongoDB并迁移到PostgreSQL。使用“真实”数据库存储高度结构化的数据有许多特性和好处。我建议搜索一下'PostgreSQL vs X‘文章,但我发现的总体共识是,PGSQL是非常成熟、可靠、可执行和支持的。
根据我使用Mongo的个人经验,然后切换到PGSQL,除非PGSQL (或另一个成熟的SQL数据库)完全崩溃,而且我花了几个月的时间修复它,否则我再也不会使用Mongo了。即使如此,我也会仔细看看其他的NoSQL数据库。PGSQL拥有如此多令人惊叹的特性和强大的工具,这使它成为joy所要使用的工具。
对于您认为需要Mongo做的事情,PGSQL可以做到,也可以做得更好或更好。它有带有索引、geo支持、全文索引等的原生JSON类型。PGSQL已经存在更长时间,并且有更多的支持(对于调试、性能调优等有用)。
不管您正在考虑使用哪种技术,如果不使用这些技术,您就无法做出任何明智的决定:
和
因此,在这一点上,我会选择更成熟和强大的工具,并设置它的监控。观察PGSQL的使用和性能,看看它是如何支撑的。研究PGSQL的最佳实践。去了解它,学习它,潜入深海。当涉及到扩展单个服务时,每个服务都有一定的独特性,不适合简单的“我应该使用X还是Y?”有个问题。
祝好运!
https://stackoverflow.com/questions/39939994
复制相似问题