事務的隔離級別舉例 MySQL中的事務隔離級別

2021-10-14 12:31:27 字數 1628 閱讀 3057

mysql中的事務隔離級別

​ 事務就是對一系列的資料庫操作進行統一的提交或者回滾操作,如果插入成功,那麼一起成功,如果中間一條出現異常,就回滾之前的所有操作。

​ 這一點和redis中的事務不同的是,redis中的任意命令執行失敗,其餘命令依然會被執行。

事務的特性

​ 1.原子性(atomicity):乙個事務中的所有操作,或者全部完成,或者全部不完成。

​ 2.一致性(consistency):在事務開始之前和事務結束之後,資料庫的完整性沒有被破壞

​ 3.隔離性(isocation):資料庫允許多個併發事務同時對資料進行讀寫和修改的能力,隔離性可以防止多個事務併發執行時交叉執行導致資料的不一致。

​ 4.永續性(durability):事務結束之後,對資料的修改就是永久的。

事務隔離級別

​ 1.讀未提交(read uncommiter):事務中的修改,即使沒有提交,對其他事務也是可見的。

​ 2.讀已提交(read committed): 事務從開始直到提交之前,所做的任何修改對其他事務都是不可見的。

​ 3.可重複讀(repeatable read)(預設隔離級別):乙個事務按相同的查詢條件讀取以前檢索過的資料,其他事務插入了滿足其查詢條件的新資料。

​ 4.可序列化(serializable):強制事務序列執行。

髒讀,幻讀,不可重複讀

​ 1.髒讀:乙個事務讀取到另乙個事務未提交的資料

​ 2.不可重複讀:同乙個事務中,多次讀取統一資料返回結果不同

​ 3.幻讀:查詢表中資料不存在就插入一條,併發時發現,有兩條相同資料。

​ 不可重複讀側重於修改,幻讀側重於新增或刪除。

mysql關於索引可以看看這篇文章

地方的:mysql索引​zhuanlan.zhihu.com

資料庫常遇錯誤以及解決思路

地方的:資料庫常遇錯誤及解決思路​zhuanlan.zhihu.com

以及高併發中的超賣問題的解決辦法

地方的:高併發中的超賣問題​zhuanlan.zhihu.com

事務的隔離級別舉例 事務的隔離級別

乙個事務是乙個完整的業務邏輯單元,不能再分,要麼全部執行成功,要麼全部失敗。比如 a給b轉賬100元,a的銀行卡就會少100元,b的銀行卡就會多100元,整個過程要麼全部執行成功,要麼全部失敗。a 原子性。事務是最小的業務邏輯單元。b 一致性。乙個事務必須保證多條dml語句同時成功或失敗。c 隔離性...

事務的隔離級別舉例 JDBC 事務隔離級別

本文總結了 jdbc 事務隔離級別。事務隔離級別定義了在乙個事務中,哪些資料是對當前執行的語句 可見 的。在併發訪問資料庫時,事務隔離級別定義了多個事務之間對於同個目標資料來源訪問時的可交叉程度。可交叉程度可分為以下幾類。可交叉程度 dirty reads 髒讀 當乙個事務能看見另外乙個事務未提交的...

事務的隔離級別舉例 JDBC事務隔離級別

一組要麼同時執行成功,要麼同時執行失敗的sql語句。是資料庫操作的乙個執行單元。斷開與資料庫的連線 表示乙個事務內的所有操作是乙個整體,要麼全部成功,要麼全部失敗 表示乙個事務內有乙個操作失敗時,所有的更改過的資料都必須回滾到修改前狀態 事務檢視資料時資料所處的狀態,要麼是另一併發事務修改它之前的狀...