mysql 中的 acid 包含原子性、一致性、隔離性和持久性。原子性確保事務要么全部成功要么全部失敗;一致性保證事務前后數據庫狀態保持一致;隔離性使并發事務互不影響;持久性確保提交的修改永久保存。
MySQL 中的 ACID
什么是 ACID
ACID 是數據庫事務的四大特性,分別為原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。
原子性
原子性指事務是一個不可分割的單位,要么全部執行成功,要么全部失敗。在事務執行過程中,即使發生錯誤,數據庫也不會處于中間狀態。
一致性
一致性指事務執行前后,數據庫狀態保持一致。事務開始時,數據庫處于一致狀態,事務結束時,數據庫仍然處于一致狀態。
隔離性
隔離性指并發事務之間互不影響。每個事務都認為自己是獨立執行的,不受其他事務的影響。
持久性
持久性指一旦事務提交,其對數據庫的修改將永久保存,即使系統崩潰或出現故障。
MySQL 中的 ACID
MySQL 支持事務,并遵循 ACID 特性。
原子性:MySQL 使用 redo 日志和 undo 日志來保證原子性。redo 日志記錄事務執行的變更,undo 日志記錄事務執行前的狀態。當事務提交時,redo 日志將變更應用到數據庫,確保事務不可分割。
一致性:MySQL 使用約束(如外鍵約束)和觸發器來維護一致性。約束確保數據符合預定義的規則,觸發器在特定事件發生時執行自動操作,以保持數據庫的完整性。
隔離性:MySQL 使用鎖機制來實現隔離性。當事務訪問數據時,會對數據加鎖,防止其他事務并發修改相同的數據。
持久性:MySQL 將事務提交的修改寫入 redo 日志和數據文件。即使系統崩潰,重啟后也可以從日志中恢復提交的更改。






