Mysql 显示状态,如';Qcache%&x27;;即使启用了查询缓存,变量值仍保持为0
当我运行“显示状态”如“Qcache%”时,我会得到以下结果Mysql 显示状态,如';Qcache%&x27;;即使启用了查询缓存,变量值仍保持为0,mysql,database,performance,Mysql,Database,Performance,当我运行“显示状态”如“Qcache%”时,我会得到以下结果 Variable_name|Value Qcache_free_blocks|0 Qcache_free_memory|0 Qcache_hits|0 Qcache_inserts|0 Qcache_lowmem_prunes|0 Qcache_not_cached|0 Qcache_queries_in_cache|0 Qcache_total_blocks|0 但我在mysql服务器中启用了所有缓存设置,我的查询显示变量,如“%
Variable_name|Value
Qcache_free_blocks|0
Qcache_free_memory|0
Qcache_hits|0
Qcache_inserts|0
Qcache_lowmem_prunes|0
Qcache_not_cached|0
Qcache_queries_in_cache|0
Qcache_total_blocks|0
但我在mysql服务器中启用了所有缓存设置,我的查询显示变量,如“%query\u cache%”,得到了以下结果
Variable_name|Value
have_query_cache|YES
query_cache_limit|2147483648
query_cache_min_res_unit|4096
query_cache_size|2147483648
query_cache_type|ON
query_cache_wlock_invalidate|OFF
谁能帮我解释为什么我的Qcache值保持为零?我需要这样做以提高所有查询性能。目前我的innodb表有300万条记录,当我试图将我的业务逻辑作为存储过程时,我无法从中得到任何响应。另外,我已经在my.conf文件中更改了所有可能的innodb缓冲区值,但仍然非常缓慢。给我一些建议来提高它的性能。提前感谢我知道这篇文章已经很老了,但是如果你还没有得到答案,那么查询缓存对存储过程不起作用就是这里给出的,大约在第10行
您运行的是32位还是64位MySQL?你的盒子上有多少内存?看起来好像yr 2G缓存限制被视为0。为什么不在您的系统my.cnf中尝试128M?查询缓存用于缓存来自固定查询的结果。如果您使用innodb作为引擎,您会发现innodb缓冲池的大小要重要得多。请查看您文档目录中的my-innodb-heavy-4G.cnf。@TerryE感谢您的回复。我的服务器是64位MySql,Ram是16 Gb。。我还试了我的-innodb-heavey-4G.cnf。当我尝试使用mysql服务器时,请停止运行。我更改了我的innodb_附加_mem_pool_size=50M和innodb缓冲池Sixe=4095M。不知道,还是很慢。。索引也可以做到这一点,缓存就是缓存:它们应该适合内存限制。尝试1G大小的池。如果您正确地建立了索引并使用了合理的锁定策略,那么您就不应该遇到您所讨论的问题。你在做std的事情吗,比如看慢速查询日志?是的,你是对的。。缓存不用于外部查询、存储函数体、触发器或事件的子查询。谢谢你在这个问题上的贡献。