为了账号安全,请及时绑定邮箱和手机立即绑定

多个sqlseesion会不会出现?脏读

我有问题?数据库的默认隔离级别会防止脏读,但是 在 mybatis这边如果只有一个sqlsession  应该不会出现脏读,如果是两个以上是sqlsession操作同一条数据,是不是就会出现?脏读的现象?分布式环境中?

正在回答

5 回答

一级缓存 是sqlsession 级别的,所以多个sqlsession 不存在上面说的脏读的问题。就算是分布式的环境下,就像视频中的说的 SqleSession是开启数据库事务的,这个就要结合数据库 默认的事物级别有关系了  正常MySql 默认的是可重复读,然后利用MVCC和数据库的锁 去解决了 幻读的问题!

0 回复 有任何疑惑可以回复我~

查询不会,增删改都会产生这些脏读.....

0 回复 有任何疑惑可以回复我~

脏读是说一个事务读到了另外一个事务未提交的数据,MySQL的默认事务隔离级别是可重复读的,一个事务不会读到其他事务未提交的数据,所以不会出现脏读的情况。Mybatis中的sqlsession是线程私有的(使用了ThreadLocal)。

0 回复 有任何疑惑可以回复我~

理解有错误。既然一级缓存是sqlsession级别的。那不同的sqlsession是不是共用一个缓存?如果不是,应该是会有脏读的吧

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

多个sqlseesion会不会出现?脏读

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信