第一次运行后,Rails POST和GET请求方法运行的时间更短

时间:2015-07-30 16:42:06

标签: mysql ruby-on-rails ruby caching amazon-web-services

我有一个Ruby on Rails应用程序,它通过POST请求将JSON数据存储在MySQL数据库中。我还有随附的GET路由来访问数据库中的数据。当我第一次发送其中一个请求时,无论是通过POST还是GET路由,请求大约需要1秒。当我发送相同的请求或其他请求时,它需要大约0.1秒,这要快得多。

我首先认为SQL查询是由rails缓存的,这就是后续相同请求速度更快的原因,但是在Web服务器控制台中,请求再次显示在它们旁边(例如, 0.3 ms)并且没有“CACHE”。在任何情况下,即使它正在缓存SQL查询,其他路由的查询也只有极少的类似查询,所以查询缓存不应该加速其他查询。

我在某处读到MySQL可能正在缓存索引,这有理由为什么如果立即完成它会更快,但如果我等了一个小时,它会采取相同的较慢速度。 MySQL是否花费时间访问SQL查询日志中未显示的未缓存索引,因为如果我在每个查询旁边添加各种(0.1毫秒),它几乎不会累计到整个请求时间(即使是显示的那个)在日志的底部)。

如果所有这些都是正确的,并且我遇到了索引缓存的影响以及访问未缓存的索引的性能损失,有没有办法可以减少第一个请求的时间。我的请求将在大约每小时左右发送一次,到那时缓存将不再具有我的索引。任何让我甚至考虑加快我的要求的事情都将受到赞赏。

0 个答案:

没有答案