MySQL隔離級別

2021-10-10 05:28:04 字數 2728 閱讀 5313

一、環境準備

二、隔離級別

總結參考資料

select @@transaction_isolation;

// 檢視當前的隔離級別

create database test;

use test;

create table user

(id int primary key auto_increment,

age int

);

存在髒讀情況

髒讀情況如下(示例):

事務1事務2truncate user;

解決了髒讀問題,存在不可重複讀情況

不可重複讀情況如下(示例):

事務1事務2truncate user;

解決了髒讀和不可重複讀。存在幻讀情況。

幻讀情況如下(示例):

事務1事務2truncate user;

最嚴格的隔離級別,它通過強制事務序列執行,避免上述的幻讀問題。上述例子中的事務2的insert into將會一直鎖住,直到事務1提交或回滾。

隔離級別

髒讀可能性

不可重複讀可能性

幻讀可能性

加鎖讀read uncommitted

yesyes

yesno

read committed

noyes

yesno

repeatable read

nono

yesno

serializable

nono

noyes

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中的隔離級別為未提交讀 表中原來的...