zoukankan      html  css  js  c++  java
  • MySQL Troubleshoting:Waiting on query cache mutex 腾讯数据库工程师:幕南风

    http://blog.itpub.net/26515977/viewspace-1208188/
         
         今天被MySQL Query Cache 炕了、线上大量 Waiting on query cache mutex
         

         那么什么是 Query Cache?

          

          

         

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

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

           这里“数据表更改”包括: INSERTUPDATE,DELETETRUNCATEALTER TABLEDROP 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

  • 相关阅读:
    CF995A Tesla
    CF961D Pair Of Lines
    P1186 玛丽卡
    CF986B Petr and Permutations
    hdu6331 Problem M. Walking Plan
    Edison UVALive3488
    Be a Smart Raftsman SGU475
    100198H Royal Federation
    100197G Robbers
    Evil Book -- CodeChef
  • 原文地址:https://www.cnblogs.com/zengkefu/p/5673890.html
Copyright © 2011-2022 走看看