MySQL擴充套件知識4 事務隔離

2021-08-19 02:37:50 字數 889 閱讀 4525

當我們的mysql表,被多個執行緒或者客戶端同時操作時,mysql提供一種機制,可以讓不同的事務在運算元據時,具有隔離性。從而保證,資料的一致性。

1)髒讀

乙個客戶端(開啟事務)會讀取到,另外乙個客戶端(開啟事務)沒有提交(commit)的修改資料。

2)不可重複讀(偏重修改操作

在第乙個事務還沒有結束時,另外乙個事務也訪問該同一資料。

在第乙個事務中的兩次讀資料之間,由於第二個事務的修改(且commit),那麼第乙個事務兩次讀到的的資料可能是不一樣的。

在乙個事務內兩次讀到的資料是不一樣的,稱為是不可重複讀

3)幻讀 | 虛讀(偏重增加和刪除操作

第乙個事務對乙個表中的資料進行了修改,這種修改涉及到表中的全部資料行。

同時,第二個事務也修改(且commit)這個表中的資料,這種修改是向表中插入一行新資料。

那麼,以後就會發生操作第乙個事務的使用者發現表中還有沒有修改的資料行,就好象發生了幻覺一樣。

基本語法:

設定

set session transaction isolation level 級別名

檢視select @@tx_isolation

補充說明

mysql**預設的隔離級別是可重複讀**。一般在開發中,不要去改。

mysql事務隔離最高 Mysql事務隔離級別

mysql官方文件顯示 innodb中每個隔離級別的詳細描述如下 read uncommitted select語句以非鎖定方式被執行,但是乙個可能更早期版本的記錄會被用到。因此,使用這個隔離級別,比如,讀是不連貫的。著也被稱為 髒讀 dirty read 另外,這個隔離級別象read commit...

MySQL 事務隔離

未提交讀 read uncommitted 允許髒讀,也就是可能讀取到其他會話中未提交事務修改的資料 提交讀 read committed 只能讀取到已經提交的資料。oracle等多數資料庫預設都是該級別 不重複讀 可重複讀 repeated read 可重複讀。在同乙個事務內的查詢都是事務開始時刻...

Mysql 事務隔離

1 事務的特性 原子性 一致性 隔離性 永續性 2 多事務同時執行的時候,可能會出現的問題 髒讀 不可重複讀 幻讀 3 事務隔離級別 讀未提交 讀提交 可重複讀 序列化 4 不同事務隔離級別的區別 讀未提交 乙個事務還未提交,它所做的變更就可以被別的事務看到 讀提交 乙個事務提交之後,它所做的變更才...