Postgresql 与 MySQL:它们的数据大小如何相互比较?

Con*_*ion 5 mysql postgresql storage data-storage

对于相同的数据集,主要是文本数据,与 MySQL 相比,Postgresql 的数据(表 + 索引)大小如何?

  • Postgresql 使用 MVCC,这表明它的数据大小会更大

  • 在本次演讲中,日本最大的博客网站谈到了他们从 Postgresql 到 MySQL 的迁移。他们放弃 Postgresql 的原因之一是 Postgresql 中的数据量太大(第 41 页): 在日本最大的博客社区 Cocolog 上从 PostgreSQL 迁移到 MySQL

  • Postgresql 具有数据压缩功能,因此应该使数据大小更小。但是 MySQL Plugin 也有压缩功能。

有没有人对 Postgresql 和 MySQL 的数据大小相互比较有任何实际经验?

Fra*_*ens 5

  • MySQL 也使用 MVCC,只需检查 innoDB。但是,在 PostgreSQL 中,您可以更改 FILLFACTOR 为将来的更新腾出空间。有了这个,您可以创建一个数据库,该数据库为当前数据以及一些未来的更新和删除提供空间。当 autovacuum 和 HOT 做对了,你的数据库的大小就可以稳定了。
  • 博客是关于旧版本的,很多东西都发生了变化,PostgreSQL 在压缩方面做得比过去好得多。
  • 压缩还取决于数据类型、配置和速度。您必须进行测试以了解它对您的情况有何作用。

我做了几次从 MySQL 到 PostgreSQL 的转换,在所有这些情况下,PostgreSQL 小了大约 10%(MySQL 5.0 => PostgreSQL 8.3 和 8.4)。这 10% 用于更改最新表的填充因子,这些被设置为 60 到 70 的填充因子。速度要好得多(超过 20 个并发用户不再出现问题)并且数据大小也很稳定,没有 MVCC一发不可收拾或真空就远远落后。

MySQL 和 PostgreSQL 是两种不同的野兽,PostgreSQL 是关于可靠性的,而 MySQL 是流行的。