ダンプは1つのトランザクションにあるため、データベース内のすべてのテーブルの一貫したビューを取得できます。これはおそらく反例によって最もよく説明されます。 Ordersという2つのテーブルを持つデータベースをダンプするとします。 およびOrderLines
- 1回のトランザクションなしでダンプを開始します。
- 別のプロセスが
Ordersに行を挿入します テーブル。 - 別のプロセスが
OrderLinesに行を挿入します テーブル。 - ダンプは
OrderLinesを処理します テーブル。 - 別のプロセスで
Ordersが削除されます およびOrderLines記録。 - ダンプは
Ordersを処理します テーブル。
この例では、ダンプにOrderLinesの行が含まれます。 、ただしOrders 。 Ordersの間に外部キーがある場合、データは一貫性のない状態になり、復元に失敗します。 およびOrderLines 。
単一のトランザクションでそれを行った場合、トランザクションの開始後に両方が挿入されて削除されるため、ダンプには順序も行もありません(ただし、一貫性があります)。