强制mysql SELECT查询不使用缓存

时间:2010-07-07 21:50:27

标签: mysql database query-optimization

我正在执行一个mysql SELECT语句,第一次运行需要30秒,但之后只需要.2。

我认为清除查询缓存会解决问题(RESET QUERY CACHE),但在此之后仍需要0.2秒。只有重新启动服务器才能将查询恢复为30秒,但在第一次运行之后也需要.2。添加SQL_NO_CACHE也不起作用。

查询:

SELECT id FROM tblOne WHERE szAddress = '123 Main Street' AND szCity = 'LAS VEGAS' AND szStateCode = 'NV'

说明:

"id","select_type","table","type","possible_keys","key","key_len","ref","rows","Extra"
1,"SIMPLE","tblOne","ref","szCity_2,idx_state_active","szCity_2","52","const",62620,"Using where"

还有另一种方法可以让它反复运行(不重新启动服务器),这样我就可以测试添加新索引及其性能吗?

我计划添加地址或地址+城市+州指数。

1 个答案:

答案 0 :(得分:3)

SQL_NO_CACHE应该是这样做的方法。我偶然发现了一些配置中的东西,如果它尊重或不尊重,你可以改变,所以你可以检查一下。

此外,http://www.mysqlperformanceblog.com/2007/09/12/query-profiling-with-mysql-bypassing-caches/

E:MySQL - force not to use cache for testing speed of query针对同一问题提供了其他几种解决方案。