问题描述
我正在使用PostgreSQL 9.1.1和Rails 3.2.8。使用NewRelic的开发模式,我注意到在服务器启动或重新启动后的第一个请求中,多个SQL查询所花的时间要比后续请求中的花费长得多。
I'm using PostgreSQL 9.1.1 and Rails 3.2.8. Using the development mode of NewRelic I've noticed that several SQL queries takes much longer during the first request following my server start or restart than during the subsequent requests.
推荐答案
仅仅是因为启动后没有在内存中加载任何索引,所以服务器将不得不做很多非常慢的磁盘读取。随着活动的进行,越来越多的索引页面被加载到内存中,而对这些页面进行查询当然要快得多。
Just after start none of the indexes is loaded in memory, so the server will have to do a lot of very slow disk reads. As activity progresses more and more index pages get loaded in memory, and consulting these pages is of course a whole lot faster.
这篇关于为什么服务器启动后第一个请求中的PostgreSQL查询比后续请求中的PostgreSQL查询要慢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!