Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 实际上,生产层Heroku数据库比starter数据库快多少?_Ruby On Rails 3_Heroku - Fatal编程技术网

Ruby on rails 3 实际上,生产层Heroku数据库比starter数据库快多少?

Ruby on rails 3 实际上,生产层Heroku数据库比starter数据库快多少?,ruby-on-rails-3,heroku,Ruby On Rails 3,Heroku,Heroku中的基本生产级数据库实现了400Mb缓存。我有一个运行2个dynos的生产站点和一个读写非常繁重的工人。数据库是我的应用程序中的瓶颈 写入数据库将使许多查询无效,因为搜索是在数据库中执行的 我的问题是,考虑到9美元入门版和50美元一级生产数据库之间的价格大幅上涨,迁移可能会带来显著的性能改进吗?这确实是一个陡峭的步骤,所以问题真的是瓶颈有多严重?这将额外花费你40美元,但一旦你的应用程序再次运行顺畅,也可能意味着更多的收入。当然,你也可以考虑其他的托管服务,但我个人最喜欢HeloCu

Heroku中的基本生产级数据库实现了400Mb缓存。我有一个运行2个dynos的生产站点和一个读写非常繁重的工人。数据库是我的应用程序中的瓶颈

写入数据库将使许多查询无效,因为搜索是在数据库中执行的


我的问题是,考虑到9美元入门版和50美元一级生产数据库之间的价格大幅上涨,迁移可能会带来显著的性能改进吗?

这确实是一个陡峭的步骤,所以问题真的是瓶颈有多严重?这将额外花费你40美元,但一旦你的应用程序再次运行顺畅,也可能意味着更多的收入。当然,你也可以考虑其他的托管服务,但我个人最喜欢HeloCu(尽管价格便宜)。此外,你已经熟悉Heroku了。Heroku devcenter提供了有关其不同计划的更多信息:

:

生产计划

非生产应用程序,或具有最低数据存储、性能或可用性要求的应用程序,可以根据行要求在两个起始层计划(dev和basic)中选择一个。但是,生产应用程序或需要生产层数据库计划功能的应用程序有多种计划可供选择。这些计划主要取决于内存中数据缓存的大小

缓存大小

每个生产层计划的缓存大小构成了提供给Postgres的RAM总量。虽然少量RAM用于管理每个连接和其他任务,但Postgres将利用几乎所有这些RAM作为缓存

Postgres不断管理数据的缓存:您写入的行、创建的索引以及Postgres保留的元数据。当查询所需的数据完全位于该缓存中时,性能会非常快。从缓存数据进行的查询通常比从完整数据集进行的查询快100-1000倍

精心设计的高性能web应用程序将有99%或更多的查询来自缓存

相反,必须退回到磁盘至少要慢一个数量级。此外,具有大型数据类型的列(例如,大型文本列)通过TOAST进行离线存储,访问大量TOAST数据的速度可能会很慢


这确实是一个陡峭的步骤,所以问题是瓶颈到底有多严重?这将额外花费你40美元,但一旦你的应用程序再次运行顺畅,也可能意味着更多的收入。当然,你也可以考虑其他的托管服务,但我个人最喜欢HeloCu(尽管价格便宜)。此外,你已经熟悉Heroku了。Heroku devcenter提供了有关其不同计划的更多信息:

:

生产计划

非生产应用程序,或具有最低数据存储、性能或可用性要求的应用程序,可以根据行要求在两个起始层计划(dev和basic)中选择一个。但是,生产应用程序或需要生产层数据库计划功能的应用程序有多种计划可供选择。这些计划主要取决于内存中数据缓存的大小

缓存大小

每个生产层计划的缓存大小构成了提供给Postgres的RAM总量。虽然少量RAM用于管理每个连接和其他任务,但Postgres将利用几乎所有这些RAM作为缓存

Postgres不断管理数据的缓存:您写入的行、创建的索引以及Postgres保留的元数据。当查询所需的数据完全位于该缓存中时,性能会非常快。从缓存数据进行的查询通常比从完整数据集进行的查询快100-1000倍

精心设计的高性能web应用程序将有99%或更多的查询来自缓存

相反,必须退回到磁盘至少要慢一个数量级。此外,具有大型数据类型的列(例如,大型文本列)通过TOAST进行离线存储,访问大量TOAST数据的速度可能会很慢

“更快”在这里是一个奇怪的指标。这意味着类似CPU的东西,但CPU在数据库中并不总是一个巨大的因素,特别是当您不进行大量写入时。您的基本数据库有0mb的缓存–每个查询都会访问磁盘。与此相比,即使是400mb的缓存也会令人惊叹。检查数据集的大致大小;一般的经验法则是将数据集放入缓存。Postgres将自行管理此缓存,并针对引用最多的数据进行优化

最终,Heroku Postgres不出售原始性能。生产层的好处是多方面的,但仅举几个例子:内存缓存、Fork/Follow支持、500个可用连接、99.95%的预期正常运行时间

在升级到生产层计划时,您肯定会看到性能提升,但几乎不可能声称它“快3倍”或类似,因为这取决于您使用数据库的方式

“更快”在这里是一个奇怪的指标。这意味着类似CPU的东西,但CPU在数据库中并不总是一个巨大的因素,特别是当您不进行大量写入时。您的基本数据库有0mb的缓存–每个查询都会访问磁盘。与此相比,即使是400mb的缓存也会令人惊叹。检查数据集的大致大小;一般的经验法则是将数据集放入缓存。Postgres将自行管理此缓存,并针对引用最多的数据进行优化

最终,Heroku Postgres不出售原始性能。生产层的好处是多方面的,但仅举几个例子:内存缓存、Fork/Follow支持、500个可用连接、99.95%的预期正常运行时间

你肯定会在美国看到性能提升