相關資料:https://zhuanlan.zhihu.com/p/70701037 https://zhuanlan.zhihu.com/p/59061106 一、事務。 1、概念。事務是由一組SQL語句組成的邏輯處理單元。 2、事務的屬性(ACID)。 i:原子性(atomicity):事務是最 ...
相關資料:https://zhuanlan.zhihu.com/p/70701037 https://zhuanlan.zhihu.com/p/59061106
一、事務。
1、概念。事務是由一組SQL語句組成的邏輯處理單元。
2、事務的屬性(ACID)。
i:原子性(atomicity):事務是最小的工作單元,整個事務中的所有操作要麼全部提交成功,要麼全部失敗回滾。
ii:一致性(consistency)::一個事務執行前後資料庫的數據必須保持一致性狀態。
iii:隔離性(isolation):多個併發事務之間要相互隔離。
iv:持久性(durability):事務提交後,其所做的修改會永久保存到資料庫中。
3、事務的隔離級別。
i:讀未提交(Read Uncommitted):當前事務中的修改,即使沒有被提交,對其他事務也是可見的。可能導致:臟讀---事務可以讀取到未提交的數據。
ii:讀已提交(Read Committed):被讀取的數據可以被其他事務修改。可能導致:不可重覆讀----在一個事務內,多次讀同一個數據。在這個事務還沒有結束時,另一個事務也訪問該同一數據。那麼,在第一個事務的兩次讀
數據之間。由於第二個事務的修改,那麼第一個事務讀到的數據可能不一樣,這樣就發生了在一個事務內兩次讀到的數據是不一樣的,因此稱為不可重覆讀,即原始讀取不可重覆。一句話
解釋:一個事務內,兩次相同的查詢,返回了不同的數據。
iii:可重覆讀(Repeatable Read):保證同一個事務中多次讀取同樣的記錄,結果是一樣的。可能導致:幻讀----一個事務T1按相同的查詢條件重新讀取以前檢索過的數據,卻發現其他事務T2插入了滿足其查詢條件的新數
據,這種現象就稱為“幻讀”。一句話解釋:事務A 讀取到了事務B提交的新增數據。 MySql預設。
iv:串列化(Serializable):所有事務串列執行,避免幻讀。