我有一个产品表,其中包含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条记录存储在缓存中。
答案 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字节值,应该可以启动。如果碰巧有很多小尺寸的查询,你可以减少它。
......最后但并非最不重要:
ON
,这意味着缓存所有可缓存的查询结果,但以SELECT SQL_NO_CACHE
开头的结果除外。您还可以查看Qcache _...状态变量以了解具体情况:
SHOW STATUS LIKE 'Qcache%';