我正在尝试优化我的mysql数据库。在运行debian的VPS上,我有大约2000个查询/秒和16 on的RAM。刚运行了MySQL调谐器。上面写着:
[!!] Query cache efficiency: 2.4% (1K cached / 51K selects)
...
query_cache_limit (> 8M, or use smaller result sets)我现在有以下设置:
query_cache_limit = 8M
query_cache_size = 256M谢谢
发布于 2012-05-10 15:47:40
您应该首先优化您的查询,以利用查询缓存。2.4%的效率真的很低。伟大的read here,它将提供很多关于查询缓存如何实际工作的信息。
查询必须是确定性的,我发现非常interesting..it,这让你可以考虑在查询中使用NOW()。很抱歉,我不能提供更多的帮助来优化你目前的51k选择。
发布于 2012-05-10 15:59:47
通过按原样使用统计数据将其关闭,您将获得更好的性能。
如果您已经显示了实际的内存使用情况(以百分比表示:(query_cache_size - Qcache_free_memory)/query_cache_size),那么它将非常有用。
向它抛出记忆不太可能有帮助。可能有一小部分查询会从缓存中受益--我假设你已经将query_cache_type设置为1(自动)。将其更改为2,并向应该可缓存的selects添加SQL_CACHE声明(NB MySQL要求查询的第一个字母为'S‘,以将其视为缓存的候选对象)。
根据内存使用情况和空闲块的数量,您可能还应该减小缓存的大小。
发布于 2016-02-12 22:27:03
对我们来说,它降低了query_cache_limit。查询缓存限制设置结果集的大小,以允许它出现在查询缓存中。
如果您将限制设置得更低(在本例中为64k),则可以在缓存中存储更多的小查询。
256M / 8M = 32个查询256M / 64K = 4096个查询
https://stackoverflow.com/questions/10529442
复制相似问题