我有一个奇怪的问题。
缓存的想法是,每当发生写操作时,记录就会被无效(删除)并在下次读取时创建。
但是,我确实会多次获取过时的数据,并且当我更改查询中的某些字符时,它会得到纠正。
我知道关闭查询缓存当然是一种可行的选择,但是在与查询缓存相关的设置方面我在这里做错了吗?
我阅读了有关直写式缓存的信息,但找不到它在MySQL中的任何默认实现,也没有在任何地方清楚地提及无效性。
另一个重要的一点是-我确实在任何时间点都有几十个连接对象(几十个),我的问题是否可能是由于某些连接级别的缓存(如果可能)而不是全局缓存?
编辑-不是重复的问题
What is the use of "query_cache_wlock_invalidate" in MySql Query Cache?
因为这里的问题是写发生后很长时间后仍返回缓存的值,因为可以预期的是写会导致缓存无效,因为届时锁也将被放弃。
>编辑-
query_cache_wlock_invalidate
确实有效。问题在于写入时间戳记不正确,导致结论无效。
答案 0 :(得分:0)
将query_cache_wlock_invalidate
设置为ON
即可。