首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么尽管有Heroku数据库缓存,我们的Rails数据库查询还是很慢?

为什么尽管有Heroku数据库缓存,我们的Rails数据库查询还是很慢?
EN

Stack Overflow用户
提问于 2013-02-04 03:35:06
回答 2查看 1.7K关注 0票数 1

我们之前使用的是Heroku Basic数据库,但发现我们网站上涉及繁重数据库查询的操作非常慢。我们在3天前升级到Heroku Crane数据库,希望它能帮助解决这个问题。然而,查询似乎同样慢。即使在一行中运行两次相同的操作看起来也很慢,而我预计由于缓存,它会很快。

我们的数据库大小只有15.4MB,而我们使用的Crane数据库提供了400MB的缓存。从理论上讲,似乎可以缓存整个数据库,从而提供非常快速的查询处理。应该是这样吗?我们如何着手解决或排除问题?此外,缓存磁盘是基于块还是基于查询(即,我们是否必须运行完全相同的查询两次才能从缓存中获益?)

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-02-04 05:29:54

仅供参考,我在Heroku Postgres团队工作。

一般而言,Postgres将缓存从磁盘中提取的底层表数据,因此您至少需要对其进行一次操作才能将其加载到内存中。但是,如果您正在执行复杂的查询,缓存数据不会给您带来那么多,有时Rails无法将足够的工作委托给数据库,从而使您的应用程序CPU受限,而数据库未得到充分利用。

我会深入研究优化您的查询和索引,让Postgres更好地发挥它的魔力。您可以从运行EXPLAINEXPLAIN ANALYZE开始,找出查询的哪个部分花费了很长时间。

优化数据库使用的好资源:http://www.freebsddiary.org/postgresql-analyze.phphttp://wiki.postgresql.org/wiki/Performance_Optimization

在rails中使用EXPLAIN的一个示例:Understanding how to optimize a query via the Postgres/rails explain data

票数 4
EN

Stack Overflow用户

发布于 2013-02-06 03:14:44

对于这么小的数据库,您应该不会看到任何性能问题。我会分析这个应用程序,并梳理出缓慢的部分,就像我在这里建议的那样:Rails Performance Tuning for Production?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14676409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档