MySQL Troubleshoting:Waiting on query cache mutex
今天被MySQL Query Cache 炕了、線上大量 Waiting on query cache mutex
那麼什麼是 Query Cache?
QC 緩存的是整個SELECT的結果集、而非執行計劃、QC的為人原則是:執行查詢最快的方式就是不去執行
但是、QC 簡單粗暴的失效策略、令人蛋疼、任何不同(空格、TAB縮進、DML等)都會導致該表的Cache不可用
失效通過single mutex 控制、有比較嚴重的鎖競爭
如何關閉QC?
控制 2個參數:
① query_cache_type = off
② query_cache_size = 0
總體而言、QC不建議使用、雞肋功能、"夫雞肋,棄之如可惜,食之無所得"、導致幾十上百倍的性能差異
如果、確實有這個緩存需求、應用允許的情況下、可用效率高的Redis或者MC等替代