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

Ale*_*lin 3 postgresql document-database postgresql-9.1 postgresql-9.2

假设我们正在构建一个用于存储来自网站或移动应用程序的分析的数据库.事务并不重要(可以删除东西)并且只会减慢速度,支持尽可能多的并发调用,一致性可能是最终的,并且一部分数据将是非结构化的(即用户可以传递随机JSON blob作为分析日志记录调用的参数,我们将存储在DB中.

像Mongo这样的东西对于它来说是一个合理的选择,因为它确实满足了我上面列出的大多数要求.然而,人们常常听说Postgres可以自定义以填充许多不同角色的能力.我想可以禁用交易等.

我对Postgres设置不太熟悉,因此我必须问:实际上是否有可能使Postgres适应我上面列出的要求?

S B*_*ugh 5

你必须尝试一下/做一些调整,看看它是否符合你的性能需求.但是,Postgres内置支持透明地存储有效称为TOAST的大列值(最高1GB)(自7.1起).Postgres即服务提供商Heroku利用其提供的"文档存储"功能,使用他们的hstore非结构化文本Postgres数据类型 - 该页面包含来自hstore采用者的示例应用程序.至于调优,我认为Postgres 9.0 High Performance对于不熟悉postgres的人来说是一个很好的参考,可以找出在Postgres在线doc上的主题.为了完整起见,Postgres有一个大对象API,可以处理高达2GB的对象,但这会使迁移到另一个RDBMS比使用像TOAST这样的透明解决方案更困难.