query cache详解
缓存机制简单的说就是缓存sql文本及查询结果,如果运行相同的sql,服务器直接从缓存中取到结果,而不需要去解析和执行sql,服务器直接从缓存中取到结果,而不需要在去解析和执行sql,如果表更改了,那么使用这个表的所有缓冲查询将不再有效,查询缓存值得相关条目被清空,所以对于频繁更新的表,查询缓存是不适合的,而对于一些不常改变数据且有大量相同sql查询的表,查询缓存会节约很大的性能。
综上:query cache在生产中建议关闭,因为它只能缓存静态数据信息,一旦数据发生变化,经常读写,query cache成了鸡肋,数据仓库可能会考虑开启query cache,
show variables like ‘query_cache_size’;
±-----------------±--------+
| Variable_name | Value |
±-----------------±--------+
| query_cache_size | 1048576 |
±-----------------±--------+
1 row in set (0.00 sec)
show variables like ‘query_cache_type’;
±-----------------±------+
| Variable_name | Value |
±-----------------±------+
| query_cache_type | OFF |
±-----------------±------+
关闭query cache 首先关闭 query_cache_type参数据。
网上有个测试:
1,query_cache_type=0,query_cache_size=0 tps=289
2,query_cache_type=1,query_cache_size=0 tps=265
3,query_cache_type=0,query_cache_size=1 tps=286
因此我司采用第一种关闭方法。