简单来说,比如在事务中update一个字段, 1.先将数据从磁盘读到缓存中,然后修改数据。这个数据在没有被刷新到磁盘的时候是脏页。
2.commit事务,缓存中的日志被写到磁盘日志文件中,释放在数据row上的锁,此时事务结算。(脏页不一定这个时间被刷新到磁盘)
问题是: 有没有可能出现,事务提交后,select这条数据并没有读到修改后的数据?
同问,我想问问回答的大神,你是从哪知道这种知识的
事务的acid再看下,都提交了读取不到这个不是事务的锅。
请教下大神,
事务提交后,脏页一定会被刷新到磁盘吗? 我看很多博客上说,事务提交成功,只保证缓存日志成功写入到日志文件。 不太理解这个的工作原因。
@常山造纸农: 不知道,一介码农不关心这些东西,对于我而言我只需要知道事务的大体逻辑及结论足以,这种问题我是建议你还是到itpub这样的更专业的地方问下。