0

我的 RDS 实例暂时显示过时的数据。

SELECT对我的数据进行了查询。然后我运行一个查询来删除表中的数据,并运行另一个查询来向表中添加新数据。我运行了一个SELECT查询,它显示的是旧数据。

SELECT再次运行查询,然后它终于向我展示了新数据。

为什么会发生这种情况?我在本地或正常的非 AZ 实例上从未遇到过这些问题。有没有办法避免这种情况发生?

我正在运行 MySQL 5.6.23

4

2 回答 2

1

根据Amazon RDS 多可用区常见问题解答,这可能是意料之中的。

具体来说:

由于代表您执行同步数据复制,您可能会观察到相对于单个可用区中的标准数据库实例部署的延迟增加。

当然,这取决于您观察到的延迟频率以及您看到的延迟增加的情况,但如果问题经常重现,一个选项是联系 AWS 支持。

于 2016-02-16T02:43:40.433 回答
1

令人尴尬的是……这是我们的 Spring Java 代码中的一个问题,而不是AWS。

一种方法修改了数据库实体对象。该方法本身不是事务性的,而是从事务上下文中调用的,该上下文会将实体上的任何更改保存到数据库中。

看起来它正在回滚更改,但它所做的只是覆盖数据。我的猜测是它不久前覆盖了数据,所以在有人试图修改它之前,我们只是假设它是正确的数据。

于 2016-02-23T08:09:10.920 回答