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;