《mysql基礎》4 隔離級別

2021-10-06 14:20:47 字數 601 閱讀 9842

mysql的innodb引擎支援事務,那麼事務之間也有可見性的問題,當我們開啟事務-提交事務的時候,我們想保證acid屬性,

a 原子性

c 一致性

i 隔離性

d 永續性

隔離性的主要指標就是隔離級別,即事務之間的可見性的管控

隔離級別的分類

1-讀未提交:a事務可以讀取b事務未提交的變更,如b set a=3;a: read a,a=3;

2-讀提交: a事務可以讀取b事務已經提交的變更 

3-可重複讀 :a事務完成之前,讀取的資料不會因為b事務的提交而變化

4-序列化:a事務執行完才能執行b事務,

上面的隔離級別的實現原理是什麼呢?

答案是-資料庫檢視-view。在資料庫中,如果在隔離級別是2-讀提交/3-可重複讀的情況下,在事務開始執行的時候,資料庫會建立資料的檢視,類似資料的副本。

2-讀提交的時候,多個執行緒的檢視是同乙個,即commit的事物都會被所有事務同時讀到

3-可重複讀的時候,每個事務有自己單獨的檢視,不會因為其他事務的提交而變化,所以不會讀到其他事務的變更。

1-讀未提交的隔離級別不會建立檢視。

4-序列隔離級別也不會建立檢視。

mysql隔離級別 MySQL 事務隔離級別

mysql innodb所提供的事務滿足acid的要求,事務是通過事務日誌中的redo log和undo log來實現原子性 undo log 一致性 undo log 永續性 redo log 事務通過鎖機制實現隔離性。1 事務隔離級別與實現read uncommitted 讀未提交 read c...

mysql隔離級別驗證 mysql 隔離級別測試

1 設定隔離級別,包括 全域性 global.tx isolation,會話級別 session.tx isolation mysql workbench的會話 2 建立測試表 注意 unsigned auto increment primary key用法 預設引擎的設定 建立測試表 use te...

Mysql隔離級別

先記錄下幾個概念 髒讀 在當前事務中,讀取到其他事務中還未提交的資料 不可重複讀 在當前事務中,讀取某一行的資料,可能讀出的資料不同 幻讀 在當前事務中,讀取記錄時,另外的事務插入了新的記錄,當前事務可能出現新的行。四種隔離級別 1.未提交讀 可能讀到髒資料 會話a中的隔離級別為未提交讀 表中原來的...