Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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 我应该定期重置查询缓存吗?_Mysql_Caching_Query Cache - Fatal编程技术网

Mysql 我应该定期重置查询缓存吗?

Mysql 我应该定期重置查询缓存吗?,mysql,caching,query-cache,Mysql,Caching,Query Cache,我正在运行一个网站游戏。在游戏开始的那一年里,我没有涉及过任何诸如重置查询缓存之类的事情,根据表的不同,我正在处理大约5000-100万行。所有内容都在不断更新,并插入到表中。如果我理解正确,每次插入或更新都会清除该表的缓存?这就是我在网上搜索时发现的,我不知道这是不是真的,或者我是否应该定期重置缓存 一个月前发生的查询现在可能不再有用了。所以,如果它存储了这些查询结果,那么它就完全没有价值了,因为很可能没有人会再次运行相同的查询 我运行了类似“Qcache%”的显示状态,结果是: Qcache

我正在运行一个网站游戏。在游戏开始的那一年里,我没有涉及过任何诸如重置查询缓存之类的事情,根据表的不同,我正在处理大约5000-100万行。所有内容都在不断更新,并插入到表中。如果我理解正确,每次插入或更新都会清除该表的缓存?这就是我在网上搜索时发现的,我不知道这是不是真的,或者我是否应该定期重置缓存

一个月前发生的查询现在可能不再有用了。所以,如果它存储了这些查询结果,那么它就完全没有价值了,因为很可能没有人会再次运行相同的查询

我运行了类似“Qcache%”的显示状态,结果是:

Qcache_free_块6941

Qcache_free_内存23490288

Qcache_点击253269763

Qcache_插件368937684

Qcache_lowmem_修剪57410566

Qcache_not_缓存9872266

Qcache_缓存35275中的查询

Qcache_总计_块84877


我真的不知道这些东西是什么意思,也不知道它们在确定是否需要重置缓存时是否有用。提前感谢。

手册没有欺骗您,任何更改表中数据的查询都会使引用该表的缓存项无效。您永远不必手动刷新缓存


如果您的数据更新如此频繁,以致于缓存中的查询永远不会持续,或者同一查询运行如此频繁,以致于缓存它毫无用处,那么您只是在浪费大量内存和CPU时间,在每次
插入
更新
查询时检查缓存项并使其无效。实际上,关闭查询缓存可以提高性能。

有没有办法只为选定的表关闭查询缓存?我的90%的表经常更新,因此它们不需要查询缓存,但其他10%的表可能永远不会更新,因此查询缓存可能对它们很有用。其次,查询缓存只能在3种模式下运行:打开、关闭和按需。如果将其设置为on demand,则必须在发出查询时明确说明要缓存哪些查询<代码>选择SQL\u缓存列。没有“为这些表打开”模式。