Chr*_*her 5 mysql database query-optimization
我正在执行一条 mysql SELECT 语句,第一次运行需要 30 秒,但此后每次都只需要 0.2 秒。
我认为清除查询缓存可以解决问题(重置查询缓存),但此后仍然需要 0.2 秒。仅重新启动服务器会将查询恢复到需要 30 秒,但在第一次运行后也需要 0.2 秒。添加 SQL_NO_CACHE 也不起作用。
询问:
SELECT id FROM tblOne WHERE szAddress = '123 Main Street' AND szCity = 'LAS VEGAS' AND szStateCode = 'NV'
Run Code Online (Sandbox Code Playgroud)
解释:
"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"
Run Code Online (Sandbox Code Playgroud)
是否有另一种方法可以让它缓慢地重复运行(无需重新启动服务器),以便我可以测试添加新索引及其性能?
我打算添加地址或地址+城市+州索引。
SQL_NO_CACHE 应该是这样做的方法。我确实在配置中偶然发现了一些东西,可以让你改变它是否遵守这一点,所以你可以检查一下。
另外,http://www.mysqlperformanceblog.com/2007/09/12/query-profiling-with-mysql-bypassing-caches/
E:MySQL - 强制不使用缓存来测试查询速度对于同一问题还有其他几个解决方案。