MySQL的隔离级别
级别 | 标志 | 值 | 描述 |
---|---|---|---|
读未提交 | READ-UNCOMMITTED | 0 | 存在脏读、不可重复读、幻读的问题 |
读已提交 | READ-COMMITTED | 1 | 解决脏读的问题,存在不可重复读、幻读的问题 |
可重复读 | REPEATABLE-READ | 2 | mysql 默认级别,解决脏读、不可重复读的问题,存在幻读的问题 |
序列化 | SERIALIZABLE | 3 | 解决脏读、不可重复读、幻读,可保证事务安全,但完全串行执行,性能最低 |

(PNG Image, 1117 × 587 pixels).png
我们可以通过以下命令 查看/设置 全局/会话 的事务隔离级别
mysql5.x
SELECT @@global.tx_isolation, @@tx_isolation;

one.PNG
mysql8.x
SELECT @@global.transaction_isolation, @@transaction_isolation;

two.PNG
mysql5.x修改回话隔离级别(才可以操作数据表的)
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修改回话隔离级别(才可以操作数据表的)
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';
© 著作权归作者所有,转载或内容合作请联系作者

喜欢的朋友记得点赞、收藏、关注哦!!!