数据库管理系统(DBMS)中的影子分页是什么?
影子分页是用于从故障中恢复的技术之一。我们都知道,恢复意味着找回丢失的信息。它有助于在发生故障时保持数据库的一致性。
影子分页的概念
现在让我们一步一步地了解影子分页的概念:
步骤 1 - 页面是内存的一段。页表是页面的索引。每个表项指向磁盘上的一个页面。
步骤 2 - 在事务的生命周期中使用两个页表:当前页表和影子页表。影子页表是当前页表的副本。
步骤 3 - 当事务开始时,两个表看起来相同,当前表会为每个写操作进行更新。
步骤 4 - 在事务的生命周期中,影子页不会更改。
步骤 5 - 当当前事务提交时,影子页表项成为当前页表项的副本,并且释放包含旧数据的磁盘块。
步骤 6 - 影子页表存储在非易失性内存中。如果系统崩溃,则影子页表将被复制到当前页表。
影子分页的示意图如下:
优点
影子分页的优点如下:
- 不需要日志记录。
- 不需要撤销/重做算法。
- 恢复速度更快。
缺点
影子分页的缺点如下:
数据碎片化或分散。
垃圾收集问题。包含修改数据的旧版本的数据库页面需要在每次事务后进行垃圾收集。
并发事务难以执行。
广告