mysql 查看与修改隔离级别
1.mysql 所有隔离级别
未提交读(Read Uncommitted):
定义:事务可以读取其他未提交事务的更改。
问题:可能导致脏读(Dirty Read)。
适用场景:对数据一致性要求不高的场景。
提交读(Read Committed):
定义:事务只能读取其他已提交事务的更改。
问题:避免了脏读,但可能导致不可重复读(Non-repeatable Read)。
适用场景:大多数数据库系统的默认隔离级别,如 Oracle。
可重复读(Repeatable Read):
定义:在同一事务中多次读取相同数据时,结果一致。
问题:避免了脏读和不可重复读,但可能导致幻读(Phantom Read)。
适用场景:MySQL 的默认隔离级别,适用于大部分应用。
可串行化(Serializable):
定义:最高的隔离级别,事务按顺序逐个执行,完全隔离。
问题:避免了脏读、不可重复读和幻读,但并发性能最差。
适用场景:对数据一致性要求极高的场景。
2.mysql 隔离级别查看
mysql 5.7以前
查看当前会话隔离级别 select @@session.tx_isolation; 或 select @@tx_isolation;
查看系统全局隔离级别 select @@global.tx_isolation;
mysql 5.7以后
查看当前会话隔离级别 select @@session.transaction_isolation; 或 select @@transaction_isolation;
查看系统全局隔离级别 select @@global.transaction_isolation;
3.修改
set [session | global] transaction isolation level [read uncommitted | read committed | repeatable read | serializable];

浙公网安备 33010602011771号