Heroku共享db vs Amazon RDS性能

sam*_*tte 14 database performance ruby-on-rails heroku

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

Heroku上,与heroku共享db:

Completed 200 OK in 98ms (Views: 0.7ms | ActiveRecord: 56.0ms)
Run Code Online (Sandbox Code Playgroud)

本地,使用RDS db实例

Completed 200 OK in 253ms (Views: 0.7ms | ActiveRecord: 127.9ms)
Run Code Online (Sandbox Code Playgroud)

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

共享数据库适用于登台,测试和小规模生产应用程序.

然而它似乎比这个RDS实例更快,我支付80美元/月.heroku的共享数据库是否在本地运行?因为对我来说很明显,在我的heroku应用程序中本地运行的任何数据库都会比生活在它之外的任何数据库更快.亚马逊表示,任何超过10毫秒的查询都被视为"慢查询".但是现在似乎每个查询从应用程序到亚马逊的服务器+实际查询时间单独往返至少需要 25ms.或者我错过了什么?

sam*_*tte 13

根据我的理解,Heroku EC2实例在East可用区运行,因此在同一区域中创建RDS实例就像给它一个本地数据库(我相信heroku的共享数据库也是如此).

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

唯一没有答案的小问题是如何确定我的heroku应用程序正在运行的特定可用性子区域,因此我可以将其与我的RDS实例匹配(尽管它可能与全局可用区域无关).

在此输入图像描述

  • 为了使事情进一步复杂化,亚马逊基于每个用户随机化区域.所以你的us-east-1b可能是我的us-east-1c (2认同)