Heroku为什么使用Postgresql?

问题描述 投票:33回答:6

我正忙于将一些MySQL特定的代码移植到Postgresql以便与Heroku一起使用。只想知道Heroku是否有通过MySQL与Postgresql结合使用的特定原因?性能,架构等?

更新:从heroku blog post

在Heroku,我们认为PostgreSQL提供了以下方面的最佳组合:强大的功能,数据完整性,速度,标准合规性以及地球上任何SQL数据库的开放源代码。

mysql ruby-on-rails postgresql heroku
6个回答
27
投票

Postgres在many ways中比mysql好。您可以阅读有关从mysql到postgres迁移rails应用程序的这些文章。虽然mysql比postgres more popular好,但是instagram is using postgres可能是由于these原因。我觉得postgres比mysql更成熟和强大。而mysql更易于使用。

Migrating MySQL to PostgreSQL in Rails « m i n d l e v

Converting Rails application data from MySQL to PostgreSQL

对于数据迁移,一个方便的小脚本:Rake task to transfer a Rails database, say from MySQL to Postgres and back again


12
投票

MySQL gotchas的列表长度与postgresql gotchas的列表长度进行比较。 MySQL更有可能使您困惑。


7
投票

通常来说,我发现pgsql比mysql更适合进行24/7操作。而且,似乎内置的脚枪更少了。我认为,如果您更熟悉彼此之间的决定,那么比其他任何因素都更有可能影响您的决定。


5
投票

嗯,对于复杂的查询,例如ORM生成的那种查询,Postgres的性能通常更好。另外,postgres往往更“扎实”。这是祖传,但我所管理的postgres服务器一直比mysql麻烦得多,mysql喜欢偶尔偶尔崩溃,偶尔会在崩溃时损坏表。


1
投票

目前,我正在将客户的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的工作方式,当我无法对列进行重新排序时,我的生活变得更加艰难。

0
投票

与上述建议没有矛盾,但是如果出于某些原因您确实想要或需要坚持使用MySQL,我最近注意到Heroku现在提供了一个免费的MySQL插件,名为ClearDB:

https://addons.heroku.com/cleardb

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

© www.soinside.com 2019 - 2024. All rights reserved.