MySQL Troubleshoting:Waiting on query cache mutex
2013-06-29 10:34
399 查看
今天被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
相关文章推荐
- MySQL Troubleshoting:Waiting on query cache mutex
- MySQL Query Cache 相关的问题
- MYSQL Query Cache 浅谈
- MySQL Query Cache 小结
- MySQL高速缓存启动方法及参数详解(query_cache_size)
- 关于MySQL Query Cache的一些交流心得
- Mysql InnoDB 引发 Waiting for query cache lock
- MySQL高速缓存启动方法及参数详解——query_cache
- mysql query cache优化
- MySQL开启查询缓存query_cache is disabled
- mysql 清除缓存reset query cache;
- mysql主从复制错误:Last_SQL_Error: Error 'Duplicate entry '327' for key 'PRIMARY'' on query. Default database: 'xxx'. Query: 'insert into
- MySQL:query cache lock
- Mysql 中query cache 的代码导读
- 服务器上有sql状态 Waiting for query cache lock
- MySQL Query Cache 小结
- mysql query cache优化
- 8.9.3 The MySQL Query Cache
- mysql中key_buffer_size,query_cache_size,table_cache的合理设置
- MySQL优化经验 key_buffer_size,query_cache_size,table_cache