mysql与spring隔离级别不同_mysql事务隔离级别与spring事务隔离级别的区别

mysql与spring隔离级别不同_mysql事务隔离级别与spring事务隔离级别的区别mysql 事务隔离级别与 spring 事务隔离级别的区别 脏读 为什么会出现脏读 因为你对数据库的任何修改都会是立即生效的 至于别人能不能看到主要取决与你是否加锁了 数据库的执行与事务没有关系 事务只是保证对数据库所做的操作会不会撤销而已 mysql 默认是行级锁 修改时只会对修改的那几行加锁 加锁期间其他用户线程是看不到修改结果的 所以会导致不可重复读和幻读的问题 mysql 的事务隔离是通过行级锁

mysql事务隔离级别与spring事务隔离级别的区别:

脏读:为什么会出现脏读,因为你对数据库的任何修改都会是立即生效的,至于别人能不能看到主要取决与你 是否加锁了,数据库的执行与事务没有关系,事务只是保证对数据库所做的操作会不会撤销而已,mysql默认是行级锁,修改时只会对修改的那几行加锁,加锁期间其他用户线程是看不到修改结果的,所以会导致不可重复读和幻读的问题;

mysql的事务隔离是通过行级锁实现的;

oracle的行级锁只有排他锁没有共享锁,默认不是使用锁机制来实现隔离的,而是通过版本控制,不会脏读但是会出现重复读问题,因为a线程在修改期间没有加锁,b线程仍然可以读取到

幻读的原因:

幻读的解释:幻读是因为a线程在一定范围内对一批数据进行修改,b线程新增了一条数据,导致用户以为自己没有全量修改;

幻读的原因:因为mysql默认是通过行级锁来实现的,而不是表级锁,那么在修改期间其他线程当然可以新插入数据了;如果使用了mysql表级锁的引擎如:MyIsAM,幻读就不可能出现;

spring的隔离级别:

spring的隔离级别一定是数据库锁机制支持的;如果数据库没有行级锁机制,也没有版本控制那么spring也没办法;

脏读和不可重复读的区别在于读的时候是否加了读共享锁,不可重复读加了读共享锁;脏读是写的时候加了排他锁

spring和数据库(mysql)隔离级别的比较:

spring管理的事务是逻辑事务,而物理事务和逻辑事务的区别在于 事务的传播行为,spring隔离级别和数据库是对应的,在做dml时,数据在数据库中其实已经修改了,只是没有生效而且由于多线程锁的关系,其他的线程过来是看不到该dml操作的结果的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177432.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午7:31
下一篇 2026年3月26日 下午7:32


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号