【问题标题】:Qcache_hits always 0Qcache_hits 总是 0
【发布时间】:2012-10-24 17:34:36
【问题描述】:

在 Centos 6.3 上,我尝试在 Mysql 上启用查询缓存。 我已启用查询缓存

SHOW VARIABLES LIKE 'query_cache_size';
query_cache_size    52428800

SHOW VARIABLES LIKE 'query_cache_type';
query_cache_type    ON

当运行一些简单的选择查询(从标题中选择 *)时,Qcache_hits 始终保持为 0。

(我正在使用这些示例 mysql 数据库:https://launchpad.net/test-db/+download

show status like "Qcache%";
Qcache_free_blocks  1
Qcache_free_memory  52419904
Qcache_hits 0
Qcache_inserts  0
Qcache_lowmem_prunes    0
Qcache_not_cached   50
Qcache_queries_in_cache 0
Qcache_total_blocks 1

我没有办法弄清楚这里出了什么问题。 有谁知道可能出了什么问题?

【问题讨论】:

标签: mysql caching centos


【解决方案1】:

您可能错过了query_cache_limit 选项,该选项会阻止缓存大于此值的结果集。

您可能还对query_cache_type 进行了非标准设置。

【讨论】:

  • 就是这样!感谢您指出了这一点!然而,现在 Qcache 被命中,分析器显示查询仍然需要 2.4 秒才能完成,与缓存被命​​中之前相同。这对于 select * 查询是否正常?
  • 不,这确实很奇怪。您可能想发布一个包含查询分析的新问题 (set profiling = 1; select * from my_table; show profile for query 1;)
【解决方案2】:

我只是在寻找相同问题的答案:查询缓存中没有任何内容。我的数据库名称不包含减号 (-),而是包含句点 (.)。我转储了数据库——很高兴它仍然很小,因为它只是在开发中——并将它恢复到另一个没有 .在名称中,查询缓存现在工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-04
    • 2016-08-28
    • 1970-01-01
    相关资源
    最近更新 更多