如何计算MySQL数据库花费Waiting for query cache lock的总时间?
我发现了两个特定的非常简单的表,它们添加了一个SQL_NO_CACHE,极大地改进了对它们的SELECT查询,我想用一种更有方法的方法来分析其他表。
我的MySQL版本是5.5.15,InnoDB引擎是1.1.8
查询缓存大小为536870912。
相关变量:

发布于 2013-10-28 19:02:14
对于查询缓存来说,半is太大了。这篇文章已经有几年的历史了,但仍然非常适用:
http://www.mysqlperformanceblog.com/2007/03/23/beware-large-query_高速缓存-大小/
在MySQL 5.5中,您可以使用侧写对此进行基准测试,但真正的问题不在于任何特定查询等待锁的时间多长,因为答案一般都是全方位的,并且基本上与查询本身或表无关,因为查询缓存是由每个查询争夺的全局互斥体访问的。
显然应该有一个超时来防止长时间的等待,但根据Bug #68573的说法,这是不正确的。
您的修复将是一个更合理的查询缓存。
我对查询缓存的内部工作方式这里进行了剖析和描述。
https://dba.stackexchange.com/questions/52347
复制相似问题