我试图将查询缓存添加到我的MySQL数据库中。但似乎我的查询结果太小而无法缓存,因此我尝试将query_cache_min_res_unit更改为极低值(如1)以测试是否会创建缓存。我发现最小值是512字节(这就是当我尝试将其设置为1时设置的值),有没有办法改变这个最小值?
答案 0 :(得分:0)
QC中的内存分配很笨拙。你不能低于512。
你真的需要QC吗?请记住,每次写入表都会清除该表的QC中的每个条目。
计算这些:
Qcache_free_blocks * 4096 / query_cache_size -- fragmentation
Qcache_total_blocks * query_cache_min_res_unit / Qcache_queries_in_cache -- estimate of query size
(query_cache_size - Qcache_free_memory) / Qcache_queries_in_cache / query_alloc_block_size
Qcache_hits / (Qcache_hits + Com_select) -- hit ratio
Qcache_hits / Qcache_inserts -- >10 is good
query_cache_size
的最大实际尺寸为50M。更重要的是,“修剪”将消耗太多的CPU。