1. 程式人生 > >SQL事務的四種隔離級別

SQL事務的四種隔離級別

lock 出現 四種 操作 rep table repeat 新的 不可重復讀

1未提交讀(Read uncommitted):完成不鎖表,所以會出現臟數據。
2提交讀(Read committed):1.事務1中update才鎖表,可以select到最新數據。

              事務2select查不到數據。 會一直等。加上WITH (NOLOCK)就可以讀了。
              2.select是不鎖表,所以其他事務可以修改數據。當有兩個select時,
              第二個select會出現臟數據。不可重復讀。

3可重復讀(Repeatable read):
              解決提交讀不可重復讀的問題的,兩次查詢到的結果一致。
              這只能解決數據修改(update)的情況結果一致。
              而如果是insert的話,新的數據還是會被select出來。這就是所謂的幻讀。

4可串行化(Serializable)
              可以解決幻讀問題。事件1還沒提前時,所有的操作都鎖表。包括select。
              其他事件操作不影響到事件1。

SQL事務的四種隔離級別