好的,所以我按照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%。
答案 0 :(得分:0)
您应该返回并以字节为单位指定参数。我知道showVar看起来是正确的,但是这些值在系统中使用,看起来你已经在MB中指定了参数,上面的第一个代码块。即使showVar看起来不错,系统可能会看到10M并且默认为0。
答案 1 :(得分:0)
好的,这就是解决我问题的方法。我最终在MySql工作台中启用了远程管理。然后我转到Configuration->选项文件。它给了我一个错误,说明没有名为[mysqld]的部分,并且它将添加它。之后,我进入了Performance选项卡,并注意到我的所有缓存复选框都未选中。我检查了所有值,MySql Workbench建议我在输入缓存值时用K,M或G后缀我的值。完成所有这些后,我重新启动了服务器并成功缓存了我的查询。
不确定配置中所有技术部分的变化,但工作台为我处理了一切。