开发者社区> 问答> 正文

关于MySQL查询缓存? 400 报错

关于MySQL查询缓存? 400 报错

如果MySQL的查询缓存配置如下【开启查询缓存,但是缓存的内存大小设置为0】,请求还会不会去校验query_cache。

query_cache_type = 1

query_cache_size = 0

展开
收起
爱吃鱼的程序员 2020-06-03 13:11:51 489 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    追加描述:

    在我们正常开启了查询缓存的时候是要走一个查询缓存的锁的,那么如果我的大小设置为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,并没有真正的关闭;

    2020-06-03 13:46:53
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像