Joh*_*hue 8 mysql replication query-cache
我们有一个基于语句的复制服务器,它一直在减速,并且在事件期间SHOW FULL PROCESSLIST显示复制查询卡住了,"Waiting for query cache lock"这令人惊讶,因为服务器query_cache_size设置为0. 分析违规查询确实会在每次更新表时显示此步骤。
这是在配置文件中看到的典型更新,即使query_cache_size是0?这真的只是检查查询缓存而不是等待获得真正锁的查询吗?
该消息意味着您正试图获取查询缓存互斥即使query_cache_size变量为0(注意,akuzminsky提到,甲骨文MySQL的仍然允许这个)你将需要设置query_cache_type的,以及因为MySQL的文件说,到0:
如果服务器在query_cache_type设置为 0 的情况下启动,则它根本不会获取查询缓存互斥锁,这意味着无法在运行时启用查询缓存,从而减少了查询执行的开销。
在 MySQL 5.6 中,query_cache_type默认为 0。这是1对MySQL 5.0,5.1和5.5
无论 MySQL 版本如何,请确保my.cnf具有这些
[mysqld]
query_cache_size = 0
query_cache_type = 0
Run Code Online (Sandbox Code Playgroud)
您不需要重新启动 mysql。只需登录到 mysql 并运行以下命令:
mysql> SET GLOBAL query_cache_size = 0;
mysql> SET GLOBAL query_cache_type = 0;
Run Code Online (Sandbox Code Playgroud)
试一试 !!!