事務的概念
- 事務是數據庫并發(fā)控制的基本單位
- 事務可以看作是一系列SQL語句的集合
- 事務必須要么全部成功魁袜,要么全部執(zhí)行失敗(回滾)
事務的四個基本特性 (ACID)
- 原子性(Atomicity):一個事務中所有操作全部完成或失敗
- 一致性(Consistency):事務開始和結束之后數據完成性沒有被破壞
- 隔離性(Isolation): 允許多個事務同事對數據庫修改和讀寫
- 持久性(Durability):事務結束后,修改是永久的深寥,不會丟失
事務的隔離性
如果不對事務進行并發(fā)控制,可能出現的異常
- 幻讀:一個事務第二次查詢框沟,查出第一次沒有的結果
- 非重復讀:一個事務沖濃度度兩次得到不同的結果
- 臟讀:一個事務讀取到另一個事務未提交的修改
- 丟失修改:并發(fā)寫入造成其中的一些修改丟失
事務的四個隔離級別
- 讀未提交:別的事務可以讀到未提交的修改
- 讀已提交:只能讀取到已經提交的數據
- 可重復讀:同一個事務前后查詢結果一樣
- 串行化:事務完全串行話忘巧,隔離級別最高,執(zhí)行效率最低
InnoDB 和 MyISAM 區(qū)別
- MyISAM 不支持事務喂柒,InnoDB 支持
- MyISAM 不支持外鍵,InnoDB 支持
- MyISAM只支持表鎖禾嫉,InnoDB支持行所和表鎖