推荐链接:
总结——》【Java】
总结——》【Mysql】
总结——》【Spring】
总结——》【SpringBoot】
一、事务的隔离级别定义
事务隔离级别指的是一个事务对数据的修改与另一个并行的事务的隔离程度。
事务隔离级别 | 描述 | 脏读 | 不可重复读 | 幻读 | 加锁读 |
---|---|---|---|---|---|
未提交读 read uncommitted | 一个事务可以读取到其他事务未提交的数据 | √ | √ | √ | |
已提交读 read committed | 一个事务只能读取到其他事务已提交的数据 | √ | √ | ||
可重复读 repeatable read | 一个事务多次读取同样的数据结果是一样的 | √ | |||
可序列化 serializable | 所有的事务都是串行执行的,不存在事务的并发操作 | √ |
Q:数据库的事务隔离越严格越好吗?
A:数据库的事务隔离越严格,并发副作用就越小,但付出的代价也就越大,因为事务隔离本质上就是使事务在一定程度上串行化,需要根据具体的业务需求来决定使用哪种隔离级别
Q:oracle只有2个事务隔离级别?
A:已提交读 read committed、可序列化 serializable
Q:Mysql有几个事务隔离级别?
A:4个都有
二、Mysql innodb默认事务的隔离级别
默认:REPEATABLE-READ
Q:innodb为什么使用RR作为默认的事务隔离级别?
A:因为innodb在RR的级别就解决了幻读的问题。
三、Oracle 默认事务的隔离级别
默认:read-committed