0

好的,所以我遵循了本教程,并重新启动了 mysql 服务器。但是,每当我运行查询然后再次执行查询时,我几乎看不到任何性能提升。这就像 0.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 查看服务器运行状况时。查询缓存命中率保持在 0%。

4

2 回答 2

0

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

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

于 2012-06-12T21:40:44.183 回答
0

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

于 2012-06-08T16:25:33.453 回答