繁体   English   中英

为什么 Heroku 使用 Postgresql?

[英]Why does Heroku use Postgresql?

我正忙着将一些 MySQL 特定代码移植到 Postgresql,以便将它与 Heroku 一起使用。 只是想知道 Heroku 使用 Postgresql 而不是 MySQL 是否有任何具体原因? 性能、架构等?

更新:来自 heroku 博客文章

在 Heroku,我们相信 PostgreSQL 提供了地球上任何 SQL 数据库的强大功能、数据完整性、速度、标准合规性和开源代码的最佳组合。

Postgres 在很多方面都比 mysql 您可以阅读这些关于将 rails 应用程序从 mysql 迁移到 postgres 的帖子。 虽然 mysql 比 postgres 更受欢迎,但instagram 使用postgres 可能是由于这些原因。 我觉得 postgres 比 mysql 更加成熟和健壮。 而mysql更容易使用。

在 Rails 中将 MySQL 迁移到 PostgreSQL « mindlev

将 Rails 应用程序数据从 MySQL 转换为 PostgreSQL

对于数据迁移,一个方便的小脚本: Rake task to transfer a Rails database,比如从 MySQL 到 Postgres 再返回

将此MySQL 陷阱列表的长度与postgresql 陷阱列表的长度进行比较。 MySQL 更有可能把你搞砸。

一般来说,我发现 pgsql 比 mysql 更适合 24/7 操作。 此外,它似乎内置了更少的脚踏枪。 我认为,如果您更熟悉其中一个,那么这比其他任何事情都更有可能影响您的决定。

嗯,Postgres 的性能通常更适合复杂查询,比如 ORM 生成的那种。 此外,postgres 往往更“可靠”。 这是古老的,但我管理的 postgres 服务器总是比 mysql 麻烦得多,mysql 喜欢偶尔随机崩溃,偶尔会在下降过程中损坏表。

我目前正在将我客户的一个 Rails 应用程序从 Heroku Postgresql 迁移到 Mysql(ClearDB 插件)。 PostgreSQL 在很多方面都是更严格和更“正确”的数据库服务,这似乎是 Heroku 认可它的原因。 然而,我发现 Rails 框架或多或少地消除了差异,而且大多数 Rails 应用程序不会增长到足以让 Mysql 的性能问题成为破坏者。

另一方面,PostgreSQL(尤其是 Heroku 的产品)对于启动应用程序有几个明显的缺点:

  • 价格。 为了防止在使用 Heroku Postgres 时每周出现“数据库连接丢失”错误,您必须每月支付 200 美元 在 ClearDB 上,每月10 美元的计划可以获得 100% 正常运行时间的承诺(我们还没有机会评估此声明),该计划还提供 1 GB 的空间——这超出了我们的需要。
  • 列排序。 在进行 Rails 开发时,我每 5 分钟参考一次schema.rb数据库架构文件,为了保持该文件的整洁和可读性,我发现能够指定应添加列的顺序至关重要。MySQL 支持指定的顺序列; PostgreSQL 没有。 在许多情况下,此功能并不重要,但由于 Rails / ActiveRecord 的工作方式,当我无法对列重新排序时,我的生活变得更加艰难。

与上述任何建议都不矛盾,但如果出于某种原因你真的想要或需要坚持使用 MySQL,我最近注意到 Heroku 现在提供了一个免费的 MySQL 附加组件,称为 ClearDB:

https://addons.heroku.com/cleardb

没用过,所以不敢保证。 Heroku 声称免费版本的正常运行时间为 99.95%(而任何付费版本都声称正常运行时间为 100%),并且他们否认免费版本是“生产就绪”。 他们声称 ClearDB 是“原生的、未经修改的 MySQL”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM