sql標準用三個必須在並行的事務之間避免的現象定義了四個級別的事務隔離。這些可能會出現的現象有:
1. [b]髒讀(dirty reads):[/b] 乙個事務讀物了另乙個未提交的並行事務寫的資料。
2. [b]不可重複讀(non-repeatable reads):[/b] 乙個事務重新讀取前面讀取過的資料,發現該資料已經被另乙個已提交的事務修改過。
3. 幻讀(phantom read): 乙個事務查詢重新執行乙個查詢,返回一套符合查詢條件的記錄,發現這些記錄因為其他最近提交的事務而發生了改變。
[b]sql事務隔離級別[/b]
[table]
|隔離級別|髒讀(dirty read)|不可重複讀(non-repeatable read)|幻讀(phantom read)
|讀未提交(read uncommitted)| 可能|可能|可能
|讀已提交(read committed)|不可能|可能|可能
|可重複讀(repeatable read)|不可能|不可能|可能
|可序列化(serializable)|不可能|不可能|不可能
[/table]
在mysql中預設的是事務隔離級別是可重複讀(repeatable read)。如果想看下mysql預設事務隔離級別則使用:
select @@global.tx_isolation;
如果想修改事務隔離級別使用
set global transaction isolcation level +事務隔離級別
mysql隔離級別 MySQL 事務隔離級別
mysql innodb所提供的事務滿足acid的要求,事務是通過事務日誌中的redo log和undo log來實現原子性 undo log 一致性 undo log 永續性 redo log 事務通過鎖機制實現隔離性。1 事務隔離級別與實現read uncommitted 讀未提交 read c...
MySQL中的事務隔離級別
sql 標準用三個必須在並行的事務之間避免的現象定義了四個級別的事務隔離。這些不希望發生的現象是 乙個事務讀取了另乙個未提交的並行事務寫的資料。乙個事務重新讀取前面讀取過的資料,發現該資料已經被另乙個已提交的事務修改過。乙個事務重新執行乙個查詢,返回一套符合查詢條件的行,發現這些行因為其他最近提交的...
MySQL中的事務隔離級別
mysql中的事務隔離級別 收藏 sql 標準用三個必須在並行的事務之間避免的現象定義了四個級別的事務隔離。這些不希望發生的現象是 髒讀 dirty reads 乙個事務讀取了另乙個未提交的並行事務寫的資料。不可重複讀 non repeatable reads 乙個事務重新讀取前面讀取過的資料,發現...