Stan Blog

學習過程中的一些記錄

[DB] Transaction 與 ACID

Transaction

一個 transaction 可以包含多種行為 (e.g. select、update、insert、delete)

transaction 不保證會成功,select 也可能會 lock

寫程式時,transaciton 不一定只有寫入才會失敗

ACID

  1. 單元性 (Atomicity) 全部執行,或全部不執行 全部執行 => commit 全部不執行 => 一個 query 失敗,全部 rollback 成執行前狀態

  2. 一致性 (Consistency) 不管 transaction 有無完成,都不能破壞數據的一致性

  3. 隔離性 (Isolation) transaction 進行時,與別的 transaction 不互相影響 有四種層級,詳見 [DB] Isolation

  4. 持續性 (Durability) transaction 一旦完成,對數據的狀態變更為永久的 即使機器當機,在重新啟動後,也會回復到 transaction 完成後狀態

每家資料庫定義的 ACID 都有點不同 XD


Ref:

Comments

comments powered by Disqus