假设我们正在构建一个数据库,用于存储来自网站或移动应用程序的分析数据。 事务并不重要(丢掉东西没关系),只会减慢速度,支持尽可能多的并发调用,一致性是最终的,部分数据将是非结构化的(即用户可以将随机 JSON blob 作为参数传递给分析日志记录调用,我们将其存储在数据库中)。
像 Mongo 这样的东西是一个合理的选择,因为它确实满足了我上面列出的大部分要求。然而,人们确实经常听说 Postgres 具有可定制性以填补许多不同角色的能力。我想可以禁用事务等。
我对 Postgres 设置不是很熟悉,因此我必须问:实际上是否可以调整 Postgres 以满足我上面列出的要求?
最佳答案
您必须尝试一下/进行一些调整,看看它是否满足您的性能需求。但是,Postgres 内置了对透明存储大列值(最多 1GB)的有效调用 TOAST 的支持。 (自 7.1 起)。 Postgres 即服务提供商 Heroku利用这一点,使用他们的 hstore 非结构化文本 Postgres 数据类型提供“文档存储”功能——该页面有来自 hstore 采纳者的示例应用程序。至于调整,我认为Postgres 9.0 High Performance对于不熟悉 postgres 的人来说是很好的引用,可以按主题找出在 Postgres 在线文档中的位置。为了完整起见,Postgres 有一个 large object API最多可以处理 2GB 的对象,但这会使迁移到另一个 RDBMS 比使用 TOAST 等透明解决方案更加困难。
关于postgresql - 可以使用 Postgres 作为文档数据库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14446684/