通过FEDERATED引擎进行的更新不会使远程数据库上的查询缓存无效



我有两个使用MySQL 5.5的数据库服务器。服务器A具有通过FEDERATED引擎连接到服务器B上的表y的表x。

如果我直接连接到服务器A和B,并且我在服务器A上更新x,则此更改应该在服务器B上立即可用,但直到我重新连接到B。

这是一个已知的问题,还是我误解了联邦发动机?

更具体地说:服务器B在本地具有表y(innodb)。服务器A具有通过联邦连接到服务器B的表x和表y。

我连接到服务器A并更新表x。
我连接到服务器B,更改在y中可见。
我在服务器a上对表x进行了第二次更新。
我使用与以前相同的B连接,看不到第二个变化
我重新连接到B,可以看到第二个变化

为了以防万一有人关心,我自己找到了解决方案:问题是我关闭了与服务器B的连接,隔离级别设置为"CONSISTENT READ"。

由于在我通过FEDERATED更新数据之前,我通过从B中选择一些信息打开了一个事务,因此我没有看到更新的信息。在回滚或提交之后,我能够在B.上看到更新的信息

因此,这与FEDERATED无关,也与我在这里询问时所期望的查询缓存无关。

最新更新