innodb 四種隔離級別

2021-09-26 19:36:51 字數 777 閱讀 1739

read uncommitted, read committed, repeatable read, serializable.

預設隔離級別是repeatable read

特性1.一致性讀的方式是在第一次讀時建立快照

特性2.在鎖定讀、update、delete時,加鎖方式依賴於查詢的方式,即是否是根據唯一索引查詢, 如果是則鎖定行,如果不是則可能會產生間隙鎖

特性1.一致性讀的方式是每次讀取和更新都會重新整理快照

特性2.在鎖定讀、update、delete時,加鎖方式是只鎖定索引記錄,不鎖間隙

特性3.在rc級別下binlog模式只支援row-based,即使配置了binlog_format=mixed,實際也是採用row-based

特性4.在rc級別下,根據非索引字段更新,只會鎖定where條件下對應的行,不會鎖定全表行記錄

在rc級別下,因為沒有間隙鎖的保護,這時會出現幽靈問題,也可以叫做幻讀

rc級別作用和啟用innodb_locks_unsafe_for_binlog配置類似,但兩者也有區別:

1.innodb_locks_unsafe_for_binlog可以被設定成全域性/所有session,但rc級別可以設定為所有session/單個session

2.innodb_locks_unsafe_for_binlog只能在mysql服務啟動前設定,rc級別可以在服務執行時設定

特性.讀取不具有一致性,存在髒讀問題

特性.在atuocommit關閉的情況下,所有的select操作都會加共享鎖

InnoDB的四種隔離級別

google所得 總結 併發事務會互相受影響,可能會導致事務產生 為了解決此類問題,innodb實現了sql92的四種標準 讀未提交 select未加鎖,可能會產生髒讀 一致性最差,併發性最差 讀提交 rc 普通select快照讀,對select insert update使用記錄鎖,可能會產生不可...

四種隔離級別

簡單地介紹一下四種隔離級別 read uncommtted 未提交讀 在read uncommitted級別,事務中的修改,即使沒有提交,對其他事務也都是可見的。事務可以讀取未提交的資料,這也被稱為髒讀。這個級別會導致 很多問題,從效能上來說,read uncommitted不會比其他級別好太多,但...

MySQL四種隔離級別

在sql標準中定義了四種隔離級別,每一種級別都規定了乙個事務中所做的修改,哪些是在事務內和事務間可見的,哪些是不可見的。較低階別的隔離通常可以執行更高的併發,系統的開銷也更低。未提交讀 read uncommitted 在未提交讀級別,事務中的修改,即使沒有提交,對其他事務也都是可見的。事務可以讀取...