Transaksi nglompokake pernyataan dadi siji unit atomik: kabèh commit utawa kabèh roll back, mènèhi A, C, I, D saka ACID. Level isolasi nyetél "I" — sepira akèh transaksi bebarengan bisa ndeleng data sing durung di-commit utawa lagi owah saka liyané.
Transaksi nglompokake pernyataan dadi siji unit atomik: kabèh commit utawa kabèh roll back, mènèhi A, C, I, D saka ACID. Level isolasi nyetél "I" — sepira akèh transaksi bebarengan bisa ndeleng data sing durung di-commit utawa lagi owah saka liyané.
| Level | Dirty read | Non-repeatable read | Phantom |
|---|
| READ UNCOMMITTED | bisa | bisa | bisa |
| READ COMMITTED | ora | bisa | bisa |
| REPEATABLE READ (standar InnoDB) | ora | ora | umumé ora* |
| SERIALIZABLE | ora | ora | ora |
*REPEATABLE READ InnoDB nganggo MVCC (saben transaksi maca snapshot sing konsisten) tambah next-key lock, dadi dhèwèké uga ngalangi umumé phantom — luwih kuwat tinimbang sing dibutuhaké standar SQL.
SELECT @@transaction_isolation; -- REPEATABLE-READ by default
START TRANSACTION;
SELECT balance FROM accounts WHERE id = 1; -- snapshot taken here
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT; -- both updates apply, or ROLLBACK undoes both
Tetepna standar InnoDB (REPEATABLE READ) kajaba sampeyan duwé alesan. READ COMMITTED (standaré Postgres/Oracle) ngurangi rebutan lock kanggo sistem sing akèh nulis; SERIALIZABLE bener nanging nyerialaké gawéan sing konflik lan bisa deadlock luwih akèh.
Isolasi iku knop antara kebeneran lan konkurensi. Ngerti anomali iki ngidini sampeyan njelasaké bug kaya "totalé ora klop nalika beban dhuwur" lan milih level sing njaga transaksi mindhah dhuwit tetep bener tanpa nyekek throughput ora perlu.
Pustaka pitakon wawancara IT kanthi jawaban rinci — saka Junior nganti Senior.
Nyumbang