使用MySql在query_cache中存储最大记录

时间:2016-07-11 09:29:01

标签: mysql

我有一个产品表,其中包含400,000条记录。

在我的服务器上,我启用了query_cache_type。它现在开启,但我没有得到更好的表现。

有没有办法可以增加缓存中可以存储的记录数量?我已经将query_cache_limit设置为1 024 000,将query_cache_size设置为2 048 000.

以下是我的查询缓存配置。

binlog_rows_query_log_events    OFF
ft_query_expansion_limit    20
have_query_cache    YES
long_query_time 10.000000
query_alloc_block_size  8192
query_cache_limit   1024000
query_cache_min_res_unit    4096
query_cache_size    2048000
query_cache_type    ON
query_cache_wlock_invalidate    OFF
query_prealloc_size 8192
slow_query_log  OFF
slow_query_log_file /rdsdbdata/log/slowquery/mysql-slowquery.log

是否需要进行任何修改?我有400 000条记录存储在缓存中。

1 个答案:

答案 0 :(得分:0)

configuration中最相关的变量包括:

  • have_query_query:它仅报告服务器二进制文件是否已使用查询缓存模块进行编译。

  • query_cache_size:它用于禁用缓存(0)或设置其最大大小(1024的倍数的字节数)。你有2048000意味着1,9 MB。你应该把它增加到几十MB(不多,通常不会有几百MB)。

  • query_cache_limit阻止缓存大型数据集(这是缓存结果的上限,以字节为单位)。您的默认值为1024000(1MB),我猜这很好。

  • query_cache_min_res_unit是缓存块的最小大小(以字节为单位)。您有默认的4096字节值,应该可以启动。如果碰巧有很多小尺寸的查询,你可以减少它。

......最后但并非最不重要:

  • query_cache_type:它确定要缓存的查询和允许提供暂时禁止缓存的方法。您的默认值为ON,这意味着缓存所有可缓存的查询结果,但以SELECT SQL_NO_CACHE 开头的结果除外。

您还可以查看Qcache _...状态变量以了解具体情况:

SHOW STATUS LIKE 'Qcache%';