This one is about Durability, means once data is saved (commit), it should not disappear even if system crashes.
First I checked initial data:
SELECT * FROM accounts;
Alice -> 1000
Bob -> 500
Then I did a transfer:
BEGIN;
UPDATE accounts
SET balance = balance - 300
WHERE name = 'Alice';
UPDATE accounts
SET balance = balance + 300
WHERE name = 'Bob';
COMMIT;
After commit I checked again:
SELECT * FROM accounts;
Alice -> 700
Bob -> 800
So transfer done.
Now imagine system crash or restart. After reconnecting I ran same query again:
SELECT * FROM accounts;
Still:
Alice -> 700
Bob -> 800
So data is not lost. That is durability.
Then I thought what if crash happens before commit → changes not saved.
If crash happens after commit → data stays safe.
So database makes sure once COMMIT happens, data is stored properly (in disk/logs).
So simple idea:
Before commit → not permanent
After commit → permanent
That is durability, even crash also cannot remove committed data.
Top comments (0)