中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數據庫事務隔離級別是什么

發布時間:2021-05-25 13:39:26 來源:億速云 閱讀:164 作者:小新 欄目:MySQL數據庫

這篇文章主要介紹了數據庫事務隔離級別是什么,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

數據庫事務隔離級別:1、Read Uncommitted(讀未提交);2、Read Committed(讀已提交);3、Repeatable Read(可重復讀取);4、Serializable(可串行化)。

本教程操作環境:windows7系統、mysql8版本、Dell G3電腦。

在數據庫操作中,一項事務(Transaction)是由一條或多條操作數據庫的 SQL 語句組成的一個不可分割的工作單元,這些操作要么都完成,要么都取消。

數據庫事務隔離級別

在實際應用中,數據庫中的數據是要被多個用戶共同訪問的,在多個用戶同時操作相同的數據時,可能就會出現一些事務的并發問題,具體如下。

1)臟讀

指一個事務讀取到另一個事務未提交的數據。

2)不可重復讀

指一個事務對同一行數據重復讀取兩次,但得到的結果不同。

3)虛讀/幻讀

指一個事務執行兩次查詢,但第二次查詢的結果包含了第一次查詢中未出現的數據。

4)丟失更新

指兩個事務同時更新一行數據,后提交(或撤銷)的事務將之前事務提交的數據覆蓋了。

丟失更新可分為兩類,分別是第一類丟失更新和第二類丟失更新。

  • 第一類丟失更新是指兩個事務同時操作同一個數據時,當第一個事務撤銷時,把已經提交的第二個事務的更新數據覆蓋了,第二個事務就造成了數據丟失。

  • 第二類丟失更新是指當兩個事務同時操作同一個數據時,第一個事務將修改結果成功提交后,對第二個事務已經提交的修改結果進行了覆蓋,對第二個事務造成了數據丟失。

為了避免上述事務并發問題的出現,在標準的 SQL 規范中定義了四種事務隔離級別,不同的隔離級別對事務的處理有所不同。這四種事務的隔離級別如下。

1)Read Uncommitted(讀未提交)

一個事務在執行過程中,既可以訪問其他事務未提交的新插入的數據,又可以訪問未提交的修改數據。如果一個事務已經開始寫數據,則另外一個事務不允許同時進行寫操作,但允許其他事務讀此行數據。此隔離級別可防止丟失更新。

2)Read Committed(讀已提交)

一個事務在執行過程中,既可以訪問其他事務成功提交的新插入的數據,又可以訪問成功修改的數據。讀取數據的事務允許其他事務繼續訪問該行數據,但是未提交的寫事務將會禁止其他事務訪問該行。此隔離級別可有效防止臟讀。

3)Repeatable Read(可重復讀取)

一個事務在執行過程中,可以訪問其他事務成功提交的新插入的數據,但不可以訪問成功修改的數據。讀取數據的事務將會禁止寫事務(但允許讀事務),寫事務則禁止任何其他事務。此隔離級別可有效防止不可重復讀和臟讀。

4)Serializable(可串行化)

提供嚴格的事務隔離。它要求事務序列化執行,事務只能一個接著一個地執行,不能并發執行。此隔離級別可有效防止臟讀、不可重復讀和幻讀。但這個級別可能導致大量的超時現象和鎖競爭,在實際應用中很少使用。

一般來說,事務的隔離級別越高,越能保證數據庫的完整性和一致性,但相對來說,隔離級別越高,對并發性能的影響也越大。因此,通常將數據庫的隔離級別設置為 Read Committed,即讀已提交數據,它既能防止臟讀,又能有較好的并發性能。雖然這種隔離級別會導致不可重復讀、幻讀和第二類丟失更新這些并發問題,但可通過在應用程序中采用悲觀鎖和樂觀鎖加以控制。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“數據庫事務隔離級別是什么”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

会同县| 开鲁县| 图们市| 广丰县| 北票市| 清徐县| 六盘水市| 沾益县| 赤壁市| 确山县| 交城县| 黄龙县| 孝昌县| 静海县| 嘉鱼县| 天水市| 习水县| 维西| 灌南县| 柞水县| 建德市| 蒙自县| 香格里拉县| 上思县| 遂溪县| 兰坪| 乐山市| 保靖县| 平定县| 海南省| 庐江县| 临沧市| 梅州市| 南木林县| 伊春市| 西青区| 木兰县| 温宿县| 开化县| 怀化市| 资源县|