MySQL写入可能不更新查询缓存

时间:2018-08-02 18:02:30

标签: mysql database mysql-5.6 query-cache

我有一个奇怪的问题。

在MySQL 5.6上,我使用以下设置启用了查询缓存。 enter image description here

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

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

我知道关闭查询缓存当然是一种可行的选择,但是在与查询缓存相关的设置方面我在这里做错了吗?

我阅读了有关直写式缓存的信息,但找不到它在MySQL中的任何默认实现,也没有在任何地方清楚地提及无效性。

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

编辑-不是重复的问题

What is the use of "query_cache_wlock_invalidate" in MySql Query Cache?

因为这里的问题是写发生后很长时间后仍返回缓存的值,因为可以预期的是写会导致缓存无效,因为届时锁也将被放弃。

>

编辑-

query_cache_wlock_invalidate确实有效。问题在于写入时间戳记不正确,导致结论无效。

1 个答案:

答案 0 :(得分:0)

query_cache_wlock_invalidate设置为ON即可。