推薦連結:
總結——》【Java】
總結——》【Mysql】
總結——》【Spring】
總結——》【SpringBoot】
一、事務的隔離級别定義
事務隔離級别指的是一個事務對資料的修改與另一個并行的事務的隔離程度。
事務隔離級别 | 描述 | 髒讀 | 不可重複讀 | 幻讀 | 加鎖讀 |
---|---|---|---|---|---|
未送出讀 read uncommitted | 一個事務可以讀取到其他事務未送出的資料 | √ | √ | √ | |
已送出讀 read committed | 一個事務隻能讀取到其他事務已送出的資料 | √ | √ | ||
可重複讀 repeatable read | 一個事務多次讀取同樣的資料結果是一樣的 | √ | |||
可序列化 serializable | 所有的事務都是串行執行的,不存在事務的并發操作 | √ |
Q:資料庫的事務隔離越嚴格越好嗎?
A:資料庫的事務隔離越嚴格,并發副作用就越小,但付出的代價也就越大,因為事務隔離本質上就是使事務在一定程度上串行化,需要根據具體的業務需求來決定使用哪種隔離級别
Q:oracle隻有2個事務隔離級别?
A:已送出讀 read committed、可序列化 serializable
Q:Mysql有幾個事務隔離級别?
A:4個都有
二、Mysql innodb預設事務的隔離級别
預設:REPEATABLE-READ
Q:innodb為什麼使用RR作為預設的事務隔離級别?
A:因為innodb在RR的級别就解決了幻讀的問題。
三、Oracle 預設事務的隔離級别
預設:read-committed