我的RDS实例暂时显示过时的数据。
我对我的数据进行了SELECT
查询。然后,我运行查询以从表中删除数据,然后运行另一个查询以向表中添加新数据。我运行了一个SELECT
查询,它显示了旧数据。
我再次运行SELECT
查询,然后它最终向我展示了新数据。
为什么会这样?我从未在本地或在我的普通非AZ实例上遇到过这些问题。有没有办法避免这种情况发生?
我正在运行MySQL 5.6.23
答案 0 :(得分:1)
根据Amazon RDS Multi-AZ FAQs,可能会出现这种情况。
特别是:
由于代表您执行同步数据复制,您可能会在单个可用区中观察到相对于标准数据库实例部署的延迟延迟。
当然,这取决于您观察到的延迟的频率以及您看到的延迟增加的程度,但是如果问题经常可以重现,可以选择联系AWS支持。
答案 1 :(得分:0)
令人尴尬的是......这是我们的Spring Java代码中的一个问题,而不是 AWS。
修改数据库实体对象的方法。该方法本身不是事务性的,而是从事务上下文调用,该事务上下文将实体的任何更改持久保存到数据库中。
看起来它正在回滚变化,但它正在做的只是覆盖数据。我的猜测是它不久前覆盖了数据,所以在有人试图修改它之前我们只是假设它是正确的数据。