MySQL 事務隔離級別

2021-10-03 23:15:40 字數 1891 閱讀 4984

事務隔離級別

sql 標準定義了四個隔離級別

隔離級別isolationlevel隔離級別isolationlevel髒寫dirtywrite髒讀dirtyread不可重複讀fuzzyread幻讀phantom解釋

讀未提交read-uncommitted

×√√√

最低的隔離級別,允許讀取尚未提交的資料變更,可能會導致髒讀、幻讀或不可重複讀

讀已提交read-committed

××

√允許讀取併發事務已經提交的資料,可以阻止髒讀,但是幻讀或不可重複讀仍有可能發生

可重複讀repeatable-read

×××

對同一欄位的多次讀取結果都是一致的,除非資料是被本身事務自己所修改,可以阻止髒讀和不可重複讀,但幻讀仍有可能發生

序列化serializable

××××最高的隔離級別,完全服從acid的隔離級別。所有的事務依次逐個執行,這樣事務之間就完全不可能產生干擾,也就是說,該級別可以防止髒讀、不可重複讀以及幻讀。

mysql innodb 儲存引擎的預設支援的隔離級別是repeatable-read(可重複讀), 我們可以通過命令來檢視。

檢視全域性 事務隔離級別

select @@global.tx_isolation;+

-----------------------+

| @@global.tx_isolation|+

-----------------------+

|repeatable

-read|+

-----------------------+

1row

inset

(0.01 sec)

檢視會話級別 事務隔離級別
select @@tx_isolation;+

-----------------+

| @@tx_isolation|+

-----------------+

|repeatable

-read|+

-----------------+

1row

inset

(0.00 sec)

設定全域性 事務隔離級別
set

global

transaction

isolation

level

repeatable

read

;execute success (

0.01 sec)

設定會話級別 事務隔離級別
set

transaction

isolation

level

repeatable

read

;execute success (

0.01 sec)

mysql隔離級別 MySQL 事務隔離級別

mysql innodb所提供的事務滿足acid的要求,事務是通過事務日誌中的redo log和undo log來實現原子性 undo log 一致性 undo log 永續性 redo log 事務通過鎖機制實現隔離性。1 事務隔離級別與實現read uncommitted 讀未提交 read c...

MySQL事務隔離級別

sql標準定義了4類隔離級別,包括了一些具體規則,用來限定事務內外的哪些改變是可見的,哪些是不可見的。低階別的隔離級一般支援更高的 併發處理,並擁有更低的系統開銷。read uncommitted 讀取未提交內容 在該隔離級別,所有事務都可以看到其他未提交事務的執行結果。本隔離級別很少用於實際應用,...

Mysql 事務隔離級別

mysql 5.5預設儲存引擎 表型別 使用的是innodb,它是支援acid特性的 acid,指資料庫的原子性 atomicity 一致性 consistency 隔離性 isolation 永續性 durability 乙個支援事務 transaction 的資料庫系統,必需要具有這四種特性,否...