关于MySQL查询缓存? 400 报错
如果MySQL的查询缓存配置如下【开启查询缓存,但是缓存的内存大小设置为0】,请求还会不会去校验query_cache。
query_cache_type = 1
query_cache_size = 0
追加描述:
在我们正常开启了查询缓存的时候是要走一个查询缓存的锁的,那么如果我的大小设置为0还会不会走这个锁,还会不会影响性能。
因为这个参数不能动态开启,为了防止有些重要的业务存在开启的可能性,所以想一开始就开启,但是大小设置为0,但是又担心影响其性能。
所以有哪位大神做过相关测试的可以给出自己的见解,谢谢~~
######终于千方百计找到测试的结果了。
1、想要彻底关闭query cache,务必在一开始就设置 query_cache_type = 0,即便是启动后将 query_cache_type 从 1 改成 0,也不行;
2、即便query_cache_size = 0,但 query_cache_type 非 0 的话,在实际环境中,可能会频繁发生 Waiting for query cache lock;
3、一开始就设置 query_cache_type = 0 的话,没有办法在运行 过程中再次动态启用,反过来则可以。也就是说,一开始是启用 query cache 的, 在运行过程中将其关闭,但事实上仍然会发生 Waiting for query cache lock,并没有真正的关闭;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。