我刚刚在Amazon的AWS上设置了一个db.t2.micro示例。我正在使用sinatra加载localhost网页。我使用活动记录做大约30~查询,它需要92秒加载。非常慢我尝试做自定义参数,如下所示:http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html#CHAP_BestPractices.PostgreSQL
这并没有帮助加快任何事情。我不知道如何加快这个示例。这是我第一次使用数据库。任何帮助将不胜感激。
当我运行我的sinatra应用程序时,它是本地主机(localhost)。这里是30~个查询需要92秒加载的地方。当我在Postgres中运行select * 语句时,它们只需要几秒钟。
1条答案
按热度按时间nwwlzxa71#
问题是你和亚马逊数据中心之间的延迟。
例如,当您在纽约,而您的RDS示例位于西海岸的Amazon数据中心时,您与数据中心之间的延迟约为80- 100 ms。这意味着当本地应用程序向数据库发送查询时,数据库接收查询需要大约100 ms。为了返回答案,再次需要额外的100 ms。
也就是说:假设包括计算在内的往返需要300 ms,并且您有大约30个查询,那么您的应用程序将浪费大约10秒的时间,什么也不做--只是等待通过网络发送的数据。还有其他因素可能会使这一速度进一步放缓:大数据包或丢失的数据包(服务器必须再次询问),糟糕的互联网连接,无线连接,您和数据库之间的距离比我的示例更长。
因此,数据库应尽可能靠近同一数据中心中的应用程序服务器,以最大限度地减少延迟。