1

我们是在 Heroku 上运行的 Ruby on rails 应用程序,我们正在为我们的数据库使用 Heroku 的 Postgres 解决方案。

我们有一个非常昂贵的数据库查询。大约需要 45 秒。我们使用 memcache 来缓存这个查询......但是当有人在缓存中 24 小时后第一次访问运行这个查询的页面时,该站点基本上会在这个查询运行时出现故障。

我们正在考虑将查询放在后台线程上。这会与 memcache 很好地配合使用吗?这会有助于网站性能吗?数据库仍在处理大查询这一事实会影响其他页面的加载吗?

4

1 回答 1

1

如果问题在测功机上不是资源密集型或锁定数据库,它可能会有所帮助。

如果这两种情况都不成立,您可以简单地将某些内容(以前的版本,可能在缓存过时之前启动进程)返回到启动客户端并旋转一个新线程。

如果强度在测功机上而不是数据库上,您可以尝试启动工作测功机或计划作业

如果您的数据库被锁定,那么您又回到了绘图板上。

哦,如果您的应用程序只使用一个数据库连接,请确保为线程打开另一个数据库连接(测功机会自行处理)。

于 2013-03-13T14:41:02.547 回答