MySQL写入可能没有更新查询缓存
我有一个奇怪的问题 在MySQL 5.6上,我启用了查询缓存,设置如下。 缓存的思想是,每当发生写操作时,记录就会失效(删除),并在下次读取时创建 但是,我确实多次得到过时的数据,当我更改查询中的某些字符时,它会得到纠正 我知道关闭查询缓存当然是一个可行的选项,但我在这里做了一些与查询缓存相关的设置错误吗 我读过关于直写缓存的内容,但在MySQL中找不到它的任何默认实现,也没有明确提到失效 另一个重要的问题是-我在任何时间点(几十个)都有很多连接对象,我的问题是否可能是因为连接级别(如果可能)的一些缓存而不是全局缓存 编辑-不是要编辑的重复问题 因为这里的问题是,即使在写操作发生很长一段时间后,缓存的值仍会返回,因为预期写操作无论如何都会导致缓存无效,因为锁也会在那时被放弃 编辑-MySQL写入可能没有更新查询缓存,mysql,database,mysql-5.6,query-cache,Mysql,Database,Mysql 5.6,Query Cache,我有一个奇怪的问题 在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
并在此处共享更新。