Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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_Database_Mysql 5.6_Query Cache - Fatal编程技术网

MySQL写入可能没有更新查询缓存

MySQL写入可能没有更新查询缓存,mysql,database,mysql-5.6,query-cache,Mysql,Database,Mysql 5.6,Query Cache,我有一个奇怪的问题 在MySQL 5.6上,我启用了查询缓存,设置如下。 缓存的思想是,每当发生写操作时,记录就会失效(删除),并在下次读取时创建 但是,我确实多次得到过时的数据,当我更改查询中的某些字符时,它会得到纠正 我知道关闭查询缓存当然是一个可行的选项,但我在这里做了一些与查询缓存相关的设置错误吗 我读过关于直写缓存的内容,但在MySQL中找不到它的任何默认实现,也没有明确提到失效 另一个重要的问题是-我在任何时间点(几十个)都有很多连接对象,我的问题是否可能是因为连接级别(如果可能)

我有一个奇怪的问题

在MySQL 5.6上,我启用了查询缓存,设置如下。

缓存的思想是,每当发生写操作时,记录就会失效(删除),并在下次读取时创建

但是,我确实多次得到过时的数据,当我更改查询中的某些字符时,它会得到纠正

我知道关闭查询缓存当然是一个可行的选项,但我在这里做了一些与查询缓存相关的设置错误吗

我读过关于直写缓存的内容,但在MySQL中找不到它的任何默认实现,也没有明确提到失效

另一个重要的问题是-我在任何时间点(几十个)都有很多连接对象,我的问题是否可能是因为连接级别(如果可能)的一些缓存而不是全局缓存

编辑-不是要编辑的重复问题

因为这里的问题是,即使在写操作发生很长一段时间后,缓存的值仍会返回,因为预期写操作无论如何都会导致缓存无效,因为锁也会在那时被放弃

编辑-


query\u cache\u wlock\u invalidate
实际工作。问题在于写入时间戳的记录不正确,导致结论无效。

查询\u缓存\u锁定\u无效
设置为
上起作用。

不重复问题可能重复,因为这里的问题是,即使在写入发生很长时间后,缓存值仍会返回,正如预期的那样,写操作无论如何都会导致缓存失效,因为锁也会在那时被放弃。对不起,比起MySQL查询缓存中的一个主要错误,更容易相信用户错误。请提供您的断言的证据,然后启用
query\u cache\u wlock\u invalidate
并演示问题的重现性。确保启用
query\u cache\u wlock\u invalidate
并在此处共享更新。