下面的文本来自Silberschatz的数据库系统概念。它说,只有在事务进入提交状态之后才会发生实际的写入。
我的问题是:当事务进入提交状态时,没有更多的语句要执行,那么谁将执行这些实际的写操作?
在处理可观察到的外部写入时,我们必须谨慎,例如向用户屏幕写入或发送电子邮件。一旦发生这种写入,就不能删除它,因为它可能是在数据库系统外部看到的。大多数系统只允许在事务进入提交状态后才进行此类写入。实现这种方案的一种方法是,数据库系统将与这种外部写入相关的任何值暂时存储在数据库中的一个特殊关系中,并且只在事务进入提交状态后才执行实际写入。如果系统在事务进入提交状态后失败,但在它完成外部写入之前,数据库系统将在系统重新启动时执行外部写入(使用非易失性存储中的数据)。
发布于 2023-03-28 09:58:26
据我所知,当前上下文中的“写”指的是外部写入(例如向用户屏幕写入或发送电子邮件)。
例如,银行应用程序首先将存款信息存储在数据库中,然后提交数据库事务,然后才进行“外部写入”--在终端屏幕上显示确认或发送确认电子邮件。- https://dba.stackexchange.com/users/2232
https://dba.stackexchange.com/questions/282771
复制相似问题