mysql數據庫事務隔離級別與設置


mysql數據庫,當且僅當引擎是InnoDB,才支持事務;

 

轉自 https://www.cnblogs.com/huasky/p/11190086.html 

1、隔離級別

事務的隔離級別分為:未提交讀(read uncommitted)、已提交讀(read committed)、可重復讀(repeatable read)、串行化(serializable)。

 

未提交讀

A事務已執行,但未提交;B事務查詢到A事務的更新后數據;A事務回滾;---出現臟數據

 

已提交讀

A事務執行更新;B事務查詢;A事務又執行更新;B事務再次查詢時,前后兩次數據不一致;---不可重復讀

 

可重復讀

A事務無論執行多少次,只要不提交,B事務查詢值都不變;B事務僅查詢B事務開始時那一瞬間的數據快照;

 

串行化

不允許讀寫並發操作,寫執行時,讀必須等待;

 

2、數據庫設置

//查看當前事物級別:
SELECT @@tx_isolation;

//設置mysql的隔離級別:
set session transaction isolation level 設置事務隔離級別
//設置read uncommitted級別:
set session transaction isolation level read uncommitted;

//設置read committed級別:
set session transaction isolation level read committed;

//設置repeatable read級別:
set session transaction isolation level repeatable read;

//設置serializable級別:
set session transaction isolation level serializable;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM