我是否需要为每个mysql查询添加一些内容才能使用mysql缓存?

时间:2012-06-07 23:04:28

标签: mysql caching ubuntu

好的,所以我按照this教程,重新启动了mysql服务器。但是,每当我运行查询然后再次执行查询时,我几乎看不到任何性能提升。它就像一个.200秒的增益,它告诉我缓存不起作用。

这是my.cnf文件中的缓存配置。

# * Query Cache Configuration
#
query_cache_limit       = 10M
query_cache_size        = 256M
query_cache_type        = 1

我测试它的方法是从数据库运行例程。该例程由一个简单的SELECT语句组成,该语句连接两个小的查找表。

show variable like '%query_cache%';

结果

have_query_cache    YES
query_cache_limit   10485760
query_cache_min_res_unit    4096
query_cache_size    268435456
query_cache_type    ON
query_cache_wlock_invalidate    OFF

编辑1

要添加,当我使用Workbench查看Server Health时。查询缓存命中率保持为0%。

2 个答案:

答案 0 :(得分:0)

您应该返回并以字节为单位指定参数。我知道showVar看起来是正确的,但是这些值在系统中使用,看起来你已经在MB中指定了参数,上面的第一个代码块。即使showVar看起来不错,系统可能会看到10M并且默认为0。

答案 1 :(得分:0)

好的,这就是解决我问题的方法。我最终在MySql工作台中启用了远程管理。然后我转到Configuration->选项文件。它给了我一个错误,说明没有名为[mysqld]的部分,并且它将添加它。之后,我进入了Performance选项卡,并注意到我的所有缓存复选框都未选中。我检查了所有值,MySql Workbench建议我在输入缓存值时用K,M或G后缀我的值。完成所有这些后,我重新启动了服务器并成功缓存了我的查询。

不确定配置中所有技术部分的变化,但工作台为我处理了一切。