MySQL的隔離級別
級別 | 標(biāo)志 | 值 | 描述 |
---|---|---|---|
讀未提交 | READ-UNCOMMITTED | 0 | 存在臟讀、不可重復(fù)讀、幻讀的問題 |
讀已提交 | READ-COMMITTED | 1 | 解決臟讀的問題庆揪,存在不可重復(fù)讀境析、幻讀的問題 |
可重復(fù)讀 | REPEATABLE-READ | 2 | mysql 默認(rèn)級別,解決臟讀咆槽、不可重復(fù)讀的問題陈轿,存在幻讀的問題 |
序列化 | SERIALIZABLE | 3 | 解決臟讀、不可重復(fù)讀秦忿、幻讀麦射,可保證事務(wù)安全,但完全串行執(zhí)行灯谣,性能最低 |
(PNG Image, 1117 × 587 pixels).png
我們可以通過以下命令 查看/設(shè)置 全局/會話 的事務(wù)隔離級別
mysql5.x
SELECT @@global.tx_isolation, @@tx_isolation;
one.PNG
mysql8.x
SELECT @@global.transaction_isolation, @@transaction_isolation;
two.PNG
mysql5.x修改回話隔離級別(才可以操作數(shù)據(jù)表的)
SET tx_isolation = 0;
set @@session.tx_isolation = 0;
SET tx_isolation = 'READ-UNCOMMITTED';
set @@session.tx_isolation = 'READ-UNCOMMITTED';
SET tx_isolation = 1;
set @@session.tx_isolation = 1;
SET tx_isolation = 'READ-COMMITTED';
set @@session.tx_isolation = 'READ-COMMITTED';
SET tx_isolation = 2;
set @@session.tx_isolation = 2;
SET tx_isolation = 'REPEATABLE-READ';
set @@session.tx_isolation = 'REPEATABLE-READ';
SET tx_isolation = 3;
set @@session.tx_isolation = 3;
SET tx_isolation = 'SERIALIZABLE';
set @@session.tx_isolation = 'SERIALIZABLE';
mysql8.x修改回話隔離級別(才可以操作數(shù)據(jù)表的)
SET transaction_isolation = 0;
set @@session.transaction_isolation = 0;
SET transaction_isolation = 'READ-UNCOMMITTED';
set @@session.transaction_isolation = 'READ-UNCOMMITTED';
SET transaction_isolation = 1;
set @@session.transaction_isolation = 1;
SET transaction_isolation = 'READ-COMMITTED';
set @@session.transaction_isolation = 'READ-COMMITTED';
SET transaction_isolation = 2;
set @@session.transaction_isolation = 2;
SET transaction_isolation = 'REPEATABLE-READ';
set @@session.transaction_isolation = 'REPEATABLE-READ';
SET transaction_isolation = 3;
set @@session.transaction_isolation = 3;
SET transaction_isolation = 'SERIALIZABLE';
set @@session.transaction_isolation = 'SERIALIZABLE';