Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 显示状态,如';Qcache%&x27;;即使启用了查询缓存,变量值仍保持为0_Mysql_Database_Performance - Fatal编程技术网

Mysql 显示状态,如';Qcache%&x27;;即使启用了查询缓存,变量值仍保持为0

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服务器中启用了所有缓存设置,我的查询显示变量,如“%

当我运行“显示状态”如“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服务器中启用了所有缓存设置,我的查询
显示变量,如“%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的事情吗,比如看慢速查询日志?是的,你是对的。。缓存不用于外部查询、存储函数体、触发器或事件的子查询。谢谢你在这个问题上的贡献。