MySQL单查询基准测试策略
我的应用程序中有一个很慢的MySQL查询,需要重新编写。问题是,它只在我的生产服务器上运行得很慢,而且只有在它未被缓存时才会运行。第一次运行它需要12秒,之后的任何时间都是500毫秒MySQL单查询基准测试策略,mysql,performance,Mysql,Performance,我的应用程序中有一个很慢的MySQL查询,需要重新编写。问题是,它只在我的生产服务器上运行得很慢,而且只有在它未被缓存时才会运行。第一次运行它需要12秒,之后的任何时间都是500毫秒 有没有一种简单的方法来测试这个查询,而不让它命中查询缓存,这样我就可以看到重构的结果 MySQL支持防止缓存单个查询。试一试 SELECT SQL_NO_CACHE field_a, field_b FROM table; 或者,您可以为当前会话解除查询缓存: SET SESSION query_cache_ty
有没有一种简单的方法来测试这个查询,而不让它命中查询缓存,这样我就可以看到重构的结果 MySQL支持防止缓存单个查询。试一试
SELECT SQL_NO_CACHE field_a, field_b FROM table;
或者,您可以为当前会话解除查询缓存:
SET SESSION query_cache_type = OFF;
参见要补充约翰尼斯的好答案,我所做的是
重置查询缓存代码>
这有一点额外的优点,即不需要对我正在执行的语句或连接进行任何更改
要做的一件小事是以某种方式更改正在执行的语句,例如在注释中放入一个随机数,因为只有当查询与以前的某个查询的字节相同时,查询才会位于缓存中