SQL 事務隔離級別

2022-08-24 13:30:22 字數 811 閱讀 7195

髒讀

包含未提交資料的讀。例如,事務1 更改了某行。

事務2 在事務1 提交更改之前讀取已更改的行。如果事務1 回滾更改,則事務2 便讀取了邏輯上從未存在過的行。

不可重複讀取

當某個事務不止一次讀取同一行,並且乙個單獨的事務在兩次(或多次)讀取之間修改該行時。因為在同乙個事務內的多次讀取之間修改了該行,所以每次讀取都生成不同值,從而引發不一致問題。

幻像

通過乙個任務,在以前由另乙個尚未提交其事務的任務讀取的行的範圍中插入新行或刪除現有行。帶有未提交事務的任務由於該範圍中行數的更改而無法重複其原始讀取。如果某個連線設定其事務隔離級別為可序列,則 sql server 使用鍵範圍鎖定以防止幻像。

隔離級別

髒讀不可重複讀取

幻像未提交讀 read committed是是

提交讀 read uncommitted否是

可重複讀 repeatable read否否

可序列讀 serializable否否

否設定隔離級別:

set transaction isolation level read committed

set transaction isolation level read uncommitted

set transaction isolation level repeatable read

set transaction isolation level serializable

SQL 隔離級別與事務

前言 事物 事物是指一組原子性的sql查詢。如 銀行轉賬 a要轉賬給b100,在資料庫中至少三步 1.a的賬戶查詢餘額大於100,2.a賬戶減少100,3.b的賬戶要增加100這樣這個事物才算真的完成,這裡的幾條sql語句應該一起完成或者失敗,失敗就會發生回滾,成功則提交事務。隔離 隔離的產生主要是...

SQL中事務的隔離級別

sql server隔離 收藏 sql server隔離語句如下 set transaction isolation level read uncommitted read committed repeatable read snapshot serializable 一次只能設定乙個隔離級別選項,...

深入講解SQL事務隔離級別

因為需要併發能力 所以我們不能用上一節的序列化的方式 來滿足併發 需要降低資料庫的隔離級別,來換取事務的併發能力 三種異常問題 髒讀 事務還沒提交,小李已經讀到了資料 不可重複讀 在事務操作中間時修改記錄,另乙個人兩次的查詢結果不一樣 幻讀 某人先查詢了n條資料,正好同時某人提交了增加資料,下一次查...