3

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

像 Mongo 这样的东西将是一个合理的选择,因为它确实满足了我上面列出的大部分要求。然而,人们确实经常听说 Postgres 具有可定制以填补许多不同角色的能力。我想一个人可以禁用交易等。

我对 Postgres 设置不是很熟悉,因此我必须问:实际上是否可以调整 Postgres 以适应我上面列出的要求?

4

2 回答 2

6

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

于 2013-01-22T04:11:41.417 回答
0

您可以查看使用https://www.mangodb.io/这是一个有线兼容的 MongoDB 到 SQL 代理。

于 2021-11-09T19:18:35.727 回答