延迟更新vs即时更新
延迟更新和即时更新是数据库管理系统(DBMS)事务日志文件维护的两种技术。事务日志(也称为日志日志或重做日志)是存储事务ID、事务的时间戳、数据的旧值和新值的物理文件。这允许DBMS在每个事务前后跟踪数据。当事务被提交并且数据库返回到一致状态时,可能会截断日志以删除已提交的事务。
延迟更新
延迟更新也称为NO-UNDO/REDO是一种用于恢复/支持由于操作系统、电源、内存或机器故障而发生的事务失败的技术。当事务运行时,事务对数据库所做的任何更新或更改都不会立即完成。它们记录在日志文件中。记录在日志文件中的数据更改在提交时应用于数据库。这个过程被称为“重做”。在回滚时,对日志文件中记录的数据所做的任何更改都将被放弃;因此不会对数据库应用任何更改。如果事务失败并且由于上述任何原因而未提交,则丢弃日志文件中的记录并重新启动事务。如果事务中的更改是在崩溃之前提交的,那么在系统重新启动之后,日志文件中记录的更改将应用于数据库。
即时更新
即时更新也称为撤消/重做,也是另一种用于恢复/支持由于操作系统、电源、内存或机器故障而发生的事务失败的技术。当事务运行时,事务所做的任何更新或更改都将直接写入数据库。在对数据库进行更改之前,原始值和新值都会记录在日志文件中。提交时,对数据库所做的所有更改都将永久化,日志文件中的记录将被丢弃。回滚时,使用日志文件中存储的旧值将旧值还原到数据库中。事务对数据库所做的所有更改都将被丢弃,此过程称为“取消执行”。当系统在崩溃后重新启动时,所有数据库更改都将永久性地用于提交的事务。对于未提交的事务,将使用日志文件中的值还原原始值。
延迟更新和立即更新有什么区别