对于相同的数据集,其中大部分是文本数据,Postgresql 的数据(表 + 索引)大小与 MySQL 相比如何?
Postgresql 使用 MVCC,这意味着它的数据大小会更大
在这次演讲中,日本最大的博客网站谈到了他们从 Postgresql 迁移到 MySQL 的情况。他们放弃 Postgresql 的原因之一是 Postgresql 中的数据量太大(第 41 页): 日本最大的博客社区 Cocolog 从 PostgreSQL 迁移到 MySQL
Postgresql 具有数据压缩功能,因此数据大小应该会更小。但 MySQL Plugin 也具有压缩功能。
有谁有关于 Postgresql 和 MySQL 数据大小相互比较的实际经验吗?
答案1
如果您的表采用 InnoDB 格式,MySQL 会使用 MVCC,除非您有特殊原因使用 MyISAM,否则应该采用 InnoDB 格式。这两种格式各有利弊。如果您主要关心的是数据大小,MySQL 提供了几个插件,其中一个是压缩的 MyISAM 表,它可以使数据大小非常小。
在选择其中一个时,您应该先检查您的完整用例,然后再做出选择。数据大小是一个因素,但它实际上取决于您的使用情况。如果它用于某种基于 Web 的服务,MySQL 通常是一个很好的候选者,因为它在读取密集型工作负载(大多数网站都是如此)下表现良好。MySQL 还固有地支持复制(尽管是异步的)。如果它是更具体的东西,Postgres 可能是一个更好的选择。
你还应该仔细看看 Percona 的 MySQL 服务器(http://www.percona.com/software/percona-server/)。它基于 MySQL,与标准 MySQL 版本相比,性能有了巨大提升。它得到了很好的支持,并且不断得到改进。我的感觉是,Percona MySQL Server 可能会满足您的要求。
希望这可以帮助!