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...