事务隔离机制
事务隔离性存在的 4 大隔离级别
- 读未提交(read uncommitted)
- 读已提交(read committed)
- 可重复读(repeatable read)
- 序列化读/串行化读(serializable)
很有意思的四种事务隔离方式,在 DOS 下开启两个窗口即可进行 4 种效果的测试!
// 设置事务的第 1 种全局隔离级别
set global transaction isolation level read uncommitted;
// 查看事务的全局隔离级别
select @@global.tx_isolation;
// 设置事务的第 2 种全局隔离级别
set global transaction isolation level read committed;
// 设置事务的第 3 种全局隔离级别
set global transaction isolation level repeatable read;
// 设置事务的第 4 种全局隔离级别
set global transaction isolation level serializable;
4 这种隔离机制中第一种隔离效果最差,
墙最薄
;第四种隔离效果最好,墙最厚
第四种虽然隔离效果好,但事务需要排队,跟 Java 的线程同步原理类似Oracle DBMS默认的隔离级别:读已提交(第 2 级别)
MySQL DBMS默认的隔离级别:可重复读(第 3 级别)