【问题标题】:Force a mysql SELECT query to not use cache强制 mysql SELECT 查询不使用缓存
【发布时间】:2011-03-13 01:35:39
【问题描述】:

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

我认为清除查询缓存可以解决问题(RESET QUERY CACHE),但之后仍需要 0.2 秒。仅重新启动服务器会将查询恢复为需要 30 秒,但在第一次运行之后也需要 0.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"

是否有另一种方法可以使其反复缓慢运行(无需重新启动服务器),以便我可以测试添加新索引及其性能?

我正计划添加地址或地址+城市+州索引。

【问题讨论】:

    标签: mysql database query-optimization


    【解决方案1】:

    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 针对同一问题有几个其他解决方案。

    【讨论】:

    • 第一个链接给了我我需要的信息,我正在使用 innodb,看来答案是你需要重新启动。
    猜你喜欢
    • 2010-09-15
    • 2014-03-29
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 2014-09-30
    • 2012-04-28
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多