在使用MySQL和一些真正的“性能贪婪的查询”时,我注意到,如果我运行这样一个贪婪的查询,它可能需要2或3分钟来计算。但是如果我在第一次完成后立即重试查询,则只需几秒钟。 MySQL存储的内容是“最后的x个查询”吗?
答案 0 :(得分:5)
简短的回答是肯定的。有一个查询缓存。
查询缓存存储SELECT语句的文本以及发送到客户端的相应结果。如果稍后收到相同的语句,则服务器将从查询缓存中检索结果,而不是再次解析和执行语句。查询缓存在会话之间共享,因此可以发送由一个客户端生成的结果集以响应由另一个客户端发出的相同查询。
来自here
答案 1 :(得分:0)
将计算并重新使用查询的执行计划。数据可以缓存,因此后续执行会更快。
答案 2 :(得分:0)
是的,根据MySQL服务器的配置方式,它可能正在使用查询缓存。这将存储相同查询的结果,直到达到某个限制(如果您控制服务器,则可以设置)。阅读http://dev.mysql.com/doc/refman/5.1/en/query-cache.html以了解有关如何调整查询缓存以便在发出许多相同查询时加快应用程序速度的更多信息。