我的应用程序中的mySQL查询速度很慢,需要重新编写。问题是,它只在我的生产服务器上运行缓慢,并且只有在没有缓存时才会缓慢。我第一次运行它需要12秒,然后在任何时候它将是500毫秒。
有没有一种简单的方法来测试这个查询而不会遇到查询缓存,所以我可以看到我的重构结果?
谢谢!
答案 0 :(得分:7)
MySQL支持阻止缓存单个查询。尝试
SELECT SQL_NO_CACHE field_a, field_b FROM table;
或者,您可以为当前会话分配查询缓存:
SET SESSION query_cache_type = OFF;
答案 1 :(得分:1)
为了加入johannes的好答案,我所做的就是
RESET QUERY CACHE;
这有一个额外的好处,即不需要对我正在执行的语句或连接进行任何更改。
要做的一件小事就是改变你正在以某种方式执行的语句,例如在注释中放置一个随机数,因为只有当查询与某些先前的查询字节完全相同时,查询才会位于缓存中。 / p>