2011-05-10 38 views
3

在使用MySQL和一些真正的“性能贪婪查询”时,我注意到,如果我运行这样一个贪婪的查询,它可能需要2或3分钟才能计算出来。但是,如果在第一次完成后立即重试查询,则只需几秒钟。 MySQL存储“最后的x个查询”之类的东西吗?MySQL是否以某种方式存储最后一个查询(s)?

回答

5

简短的回答是肯定的。有一个查询缓存。

查询缓存存储SELECT语句的文本以及发送给客户端的相应结果。如果稍后收到相同的语句,服务器将从查询缓存中检索结果,而不是再次解析并执行该语句。查询缓存在会话中共享,因此可以发送由一个客户端生成的结果集,以响应另一个客户端发出的相同查询。

here

+0

亚历克斯,感谢格式更改。打我吧:) – 2011-05-10 03:01:34

0

用于查询执行计划将被计算和重新使用。数据可以被缓存,所以后续执行会更快。

0

是的,取决于如何配置MySQL服务器,它可能使用查询缓存。这将存储相同查询的结果,直到达到某个限制(如果您控制服务器,则可以设置该限制)。请阅读http://dev.mysql.com/doc/refman/5.1/en/query-cache.html以了解更多关于如何调整查询缓存以加快应用程序的速度,如果它发出许多相同的查询。

相关问题