ACID 是指關聯式數據庫管理系統(RDBMS)寫入、更新的過程中,為了保證交易( transaction )是正確可靠的,所需具備的四個特性。
原子性確保了交易的所有操作,要麼全部完成,要麼全部失敗。如果一個交易包含多個操作(例如新增、更新、刪除數據),當中任何一個操作失敗時,整個交易都應該被回滾(Rollback),即所有操作都被撤銷,不會對數據庫狀態造成影響,確保了交易的完整性。
一致性確保了交易開始前、結束後資料庫的完整性並沒有被破壞。這表示交易在執行前後必須滿足所有前提和約束。如果一個交易違反了一致性規則,則該交易應該被回滾,以保持數據庫的一致性。
資料庫允許多個交易同時對數據進行讀寫、修改,隔離性可以防止多個交易交叉執行而導致數據的不一致。這意味著每個交易都處於隔離狀態,互不干擾。隔離性可分為四個級別:
持久性確保一旦交易成功提交,其結果將永久保存在數據庫中,即使數據庫系統發生故障也不應該丟失。
ACID 特性確保了數據庫系統處理交易時的可靠性和一致性,這對於需要高度信任和數據完整性的應用程序(如銀行系統、訂單處理系統等)至關重要。然而,ACID 特性的實現通常會導致性能開銷,因此在某些情況下,可以考慮使用較寬鬆的交易模型(例如 BASE)來實現更高的性能。
資料來源: wiki