ITPub博客

首页 > 数据库 > Oracle > MySQL Troubleshoting:Waiting on query cache mutex

MySQL Troubleshoting:Waiting on query cache mutex

原创 Oracle 作者:幕南风 时间:2014-07-03 14:07:09 0 删除 编辑
     
     今天被MySQL Query Cache 炕了、线上大量 Waiting on query cache mutex
     

     那么什么是 Query Cache?

      

      

     


     
       QC 缓存的是整个SELECT的结果集、而非执行计划、QC的为人原则是:执行查询最快的方式就是不去执行
       但是、QC 简单粗暴的失效策略、令人蛋疼、任何不同(空格、TAB缩进、DML等)都会导致该表的Cache不可用
       失效通过single mutex 控制、有比较严重的锁竞争


       如果数据表被更改,那么和这个数据表相关的全部Cache全部都会无效,并删除之

       这里“数据表更改”包括: INSERT, UPDATE,DELETE, TRUNCATE, ALTER TABLE, DROP TABLE, or DROP DATABASE等
     
     如何关闭QC?
     控制 2个参数:
     ① query_cache_type = off
     ② query_cache_size = 0
     
     总体而言、QC不建议使用、鸡肋功能、"夫鸡肋,弃之如可惜,食之无所得"、导致几十上百倍的性能差异
     如果、确实有这个缓存需求、应用允许的情况下、可用效率高的Redis或者MC等替代



By David Lin

2013-06-29

Good Luck

<!-- Baidu Button BEGIN -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26515977/viewspace-1208188/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 深入理解Oracle索引(24):B*Tree 索引小结
下一篇: IPC 资源、kernel.shmmax和Oracle 共享内存的调整
请登录后发表评论 登录
全部评论
腾讯数据库工程师

注册时间:2012-05-10

最新文章