Mysql筆記 事務

2021-09-13 22:43:26 字數 708 閱讀 7259

事務(transaction)會把資料庫從一種一致狀態轉換為另一種一致狀態。在資料庫提交工作時,要麼所有修改都已經儲存了,要麼修改都不儲存。

事務是訪問並更新資料庫中各種資料項的乙個程式執行單元。在執行中要麼都做修改,要麼都不做修改。

innodb儲存引擎中的事務完全符合acid的特性。

l  原子性(atomicity)

原子性是指整個資料庫事務是不可分割的工作單元。只有使事務中所有的資料庫操作都執行成功,才算整個事務成功。事務中任何乙個sql語句執行失敗,已經執行成功的sql語句必須撤銷,資料庫的狀態必須退回到執行事務前的狀態。

l  一致性(consistency)

一致性是指事務將資料庫從一種狀態轉換為下一種一致狀態。也就是說,在事務開始之前和事務結束之後,資料庫的完整性約束沒有被破壞。

l  隔離性(isolation)

隔離性(或稱為鎖、可序列化和併發控制)。事務的隔離性要求每個讀寫事務的物件對其他事務的操作物件能相互分離,即該事務提交之前對其他事務都不可見,通常使用鎖來實現。

l  永續性(durability)

事務一旦提交,其結果就是永久的。

在扁平事務中,所有的操作都處於同一層次,其有begin work開始,由commit work 或者 rollback work結束。期間的操作是原子的,要麼都執行,要麼都回滾。

除了支援扁平事務支援的事務之外,允許在事務執行過程中回滾到同一事物較早的乙個狀

mysql 筆記 事務

一 問題讀取 1.髒讀 dirty read 事務1更新了某一條記錄,但未提交 事務2讀取到新的未提交記錄 事務1回滾。2.不可重複讀取 nonrepeatable read 不可重複讀,是指在資料庫訪問中,乙個 事務範圍內兩個相同的查詢卻返回了不同資料。例子 事務1讀取某一條記錄 事務2修改事務1...

mysql筆記 事務

寫日誌為什麼比直接寫磁碟要快?使用事務日誌,儲存引擎在修改表的資料時,只需要修改其記憶體拷貝,再把該修改行為記錄到硬碟上的事務日誌中,而不用每次都將修改的資料本身持久到磁碟。事務日誌採用的是追加的方式,因此寫日誌的操作是磁碟上一小塊區域內的順序i o,而不是隨機i o,所以快很多。事務日誌持久以後,...

MySQL學習筆記 事務

事務是用來保證一組資料庫的操作,要麼全部成功,要麼全部失敗 應用場景較多 如銀行轉賬,訂票等。mysql的事務是在引擎層支援的,原生的myisam不支援,因此主流使用innodb引擎。原子性顧名思義,不可分割,要麼所有指令都成功,要麼所有指令都失敗 一致性事務開始前和事務結束後,資料庫的狀態都是正常...