ruby-on-rails - Heroku 共享数据库与 Amazon RDS 性能对比

标签 ruby-on-rails database performance heroku

我正在将所有数据从 Heroku 的共享数据库移动到 Amazon RDS。在将所有内容切换到 RDS 之前,我在本地运行了一些测试以确保我的应用程序可以正常运行。这些测试显然减慢了 RDS 上的查询时间。对于完全相同的请求,我得到:

Heroku 上,使用 heroku 共享数据库:

Completed 200 OK in 98ms (Views: 0.7ms | ActiveRecord: 56.0ms)

本地,使用RDS 数据库实例

Completed 200 OK in 253ms (Views: 0.7ms | ActiveRecord: 127.9ms)

我在这里担心的是 ActiveRecord 时间。我错过了什么吗? Heroku 清楚地说明了他们的共享数据库:

Shared databases are suitable for staging, testing, and low-scale production applications.

但它似乎比我每月支付 80 美元的 RDS 实例要快。 heroku 的共享数据库是否在本地运行?因为对我来说很明显,在我的 heroku 应用程序中本地运行的任何数据库都将比它之外的任何数据库都快。亚马逊表示,任何超过 10 毫秒的查询都被视为“慢查询”。但现在看来,仅从应用程序到亚马逊服务器的往返 + 实际查询时间,每个查询都将花费 至少 25 毫秒。还是我遗漏了什么?

最佳答案

据我所知,Heroku EC2 实例在 East 可用性区域运行,因此在同一区域创建 RDS 实例非常类似于为其提供本地数据库(我相信这也是 heroku 的共享数据库的工作方式)。

直接在 Heroku 上为我的应用程序设置暂存环境并将其连接到我的 RDS 实例后,查询时间比我在本地测试时快得多(每个 SQL 查询都必须从我的本地机器到RDS 服务器)。

唯一 Unresolved 小问题是如何确定我的 heroku 应用程序在哪个特定可用性子区域中运行,以便我可以将它与我的 RDS 实例匹配(尽管它可能与全局可用性无关紧要区)。

enter image description here

关于ruby-on-rails - Heroku 共享数据库与 Amazon RDS 性能对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7701026/

相关文章:

c++ - 特征表达式模板比指数的手动循环慢

sql - 如何在 SQL Server 中获取查询执行计划?

php - XDebug 能否单独跟踪探查器调用所花费的时间?

css - rails : Embed child in submit_tag

ruby-on-rails - Rails 的纯 HTML 模板解决方案?

mysql - 如何搜索包含150+列的Mysql表?

mysql - 从用户和关注用户中选择帖子的 SQL 查询不包括自己的帖子

ruby-on-rails - 为什么db是:structure:load failing with "operator family "btree_hstore_ops for access method btree already exists"?

mysql - 用户 'root' @'172.28.1.5' 的 Docker 访问被拒绝(使用密码 : NO))

java - 如何在数据库应用中最好地处理多种语言?