mysql 4種事務隔離級別驗證

2021-09-25 17:22:00 字數 1550 閱讀 8077

1.建表

create table `test` (

`id` int(11) not null auto_increment,

`name` varchar(255) default null,

primary key (`id`)

) engine=innodb auto_increment=6 default charset=utf8;

2.插入資料

insert into `demo`.`test` ( `id`, `name` )

values

( 1, '1' );

3.檢視當前預設事務隔離級別

4.開始驗證4種不同得事務隔離級別

注意:開始事務前設定事務隔離級別

例1:read uncommitted (未授權讀取、讀未提交) :

開啟事務

進行驗證

由上可見,當隔離級別設定為 read uncommitted 時,a事務更新資料但未提交時 b資料就可以讀取到a事務更新得資料,由此回引發問題;

例2:read committed(授權讀取、讀提交):

由上我們發現,當左側進行更新得時候,事務未提交得狀態 我們去進行查詢是查詢不到資料得,由此避免了髒讀,但是出現了不可重複讀。

例3: repeatable read(可重複讀取):

repeatable read 有效得避免了髒讀 不可重複讀,但是當其他事務進行插入並提交後,出現了幻讀

例4:serializable(序列化):

由上可見,serializable 有效得避免了髒讀 不可重複讀 幻讀得問題,serializable是最高的事務隔離級別,同時代價也花費最高,效能很低,一般很少使用,在該級別下,事務順序執行,不僅可以避免髒讀、不可重複讀,還避免了幻讀。

mysql4種事務 Mysql事務四種隔離級別

首先可查詢mysql自動提交狀態 select autocommit 結果如下 autocommit 1 可通過命令將資料庫事務修改為不自動提交 set autocommit 0 mysql四種事務隔離級別 1.讀未提交 read uncommitted 也叫髒讀 助記骯髒 設定事務隔離級別為 讀未...

MySQL事務的4種特性以及事務隔離級別

事務的基本特性 1 原子性 atomicity 事務開始後所有操作,要麼全部做完,要麼全部不做,不可能停滯在中間環節。事務執行過程中出錯,會回滾到事務開始前的狀態,所有的操作就像沒有發生一樣。也就是說事務是乙個不可分割的整體,就像化學中學過的原子,是物質構成的基本單位。2 一致性 consisten...

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

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