Postgres可以作为文档数据库使用吗?

5
假设我们正在构建用于存储来自网站或移动应用程序的分析数据的数据库。交易不重要(放弃掉对于性能没有负面影响),支持尽可能多的并发调用是重要的,一致性可以是最终一致性,并且部分数据将是非结构化的(例如,用户可以将随机的JSON blob作为参数传递给分析日志调用,我们将其存储在数据库中)。
像Mongo这样的数据库是一个合理的选择,因为它满足我上面列出的大部分要求。然而,人们经常听到Postgres具有可定制的能力,可以填充许多不同的角色。我想象,人们可以禁用交易等。
我不太熟悉Postgres设置,因此必须问:实际上是否可能调整Postgres以满足上述要求?

PostgreSQL 9.2拥有本地的json数据类型(尽管在其函数方面支持非常有限)。还有一种名为hstore的键/值数据类型。这两种类型都被主流称为“NoSQL”。 - user330315
2个回答

7

您需要尝试一下/进行一些调整,以确定它是否符合您的性能需求。但是,Postgres内置支持透明存储大列值(高达1GB)的有效方式,称为TOAST(自7.1版本以来)。Postgres作为服务提供商Heroku充分利用这一点,使用他们的hstore非结构化文本Postgres数据类型提供“文档存储”功能-该页面具有hstore采用者的示例应用程序。至于调整,我认为Postgres 9.0高性能对于不熟悉Postgres的人来说是一个很好的参考,可以按主题查找Postgres在线文档。为了完整起见,Postgres具有大型对象API,可以处理高达2GB的对象,但这将使迁移到另一个RDBMS比使用TOAST等透明解决方案更困难。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接