谁能解释为什么 Write-Ahead Log 使用 NO-FORCE?

Could anyone explain why is Write-Ahead Log the use NO-FORCE?

我在网上查到,STEAL和FORCE的定义如下

FORCE or NO-FORCE: Should all updates of a transaction be forced to disk before the transaction commits?

此外,有人告诉我

A transaction is not considered committed until all its log records have been written to stable storage

那么 WAL 与 FORCE 方法有何不同?我觉得在这两种情况下,更改都必须在我们提交事务时刷新到磁盘....

使用 WAL,您可以按顺序写入日志。整个数据库中页面的更新可以异步写入日志条目。

强制方法要求缓冲池中的所有脏页与提交操作同步刷新到磁盘。这是一个更昂贵的操作并且限制了吞吐量。

基本权衡:WAL 崩溃后恢复时间更长与强制吞吐量较低。