MySql隔离级别多线程并发读取数据时的正确性
隔離級別 ???? 臟讀 ? 不可重復讀 ? 幻讀
讀未提交(Read uncommitted)? V? V?? V
讀已提交(Read committed)?? x? V?? V
可重復讀(Repeatable read)? ?x? x?? V
可串行化(Serializable )?? x ?x?? x
臟讀(dirty reads) ?
一個事務讀取了另一個未提交的并行事務寫的數據。
不可重復讀(non-repeatable reads)--【針對 update】 ?
一個事務重新讀取前面讀取過的數據, 發現該數據已經被另一個已提交的事務修改過。
幻讀(phantom read) --【針對 insert、delete】? ?
一個事務重新執行一個查詢,返回一套符合查詢條件的[行], 發現這些行因為其他最近提交的事務而發生了改變。
查看隔離級別:
?select @@tx_isolation;
設置隔離級別:
[建議Read committed] ?set transaction isolation level [read uncommitted || read committed || repeatable read || serializable ]
JAVA中設置隔離級別: ?
connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
總結
以上是生活随笔為你收集整理的MySql隔离级别多线程并发读取数据时的正确性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PlateSpin forge V2P回
- 下一篇: TextBox和DataGridView