老话题:数据库隔离级别,大神略过

来源:互联网 发布:js 给input class赋值 编辑:程序博客网 时间:2024/05/16 18:03


注意的是 mysql的默认隔离级别是 repeatable-read ,并且不会出现虚读

脏读:是指读到了另一事务在更改之后因为数据库回滚没提交的数据,所以是脏数据,这种情况是由于设置为读可提交数据引起的

重复读:是指在同一个事务内多次读到了另一个事务修改的提交的数据,导致数据不同

幻读或者虚读:是指在同一个事务内多次读到另一个事务以插入或删除的提交的数据 

第二类丢失更新:第一次更新数据把第二次更新的数据给更新掉了,在个隔离级别为repeatable-read的时候不会出现,两个事务可以同事查到一个数据,然后更新,更新会相互阻塞,如果有一个事务在更新这条数据,则另一个事务会等这个事务执行完,然后在用新的数据的基础上作修改,mysql的措施是,如果在同一个事务里面select同一条,最先commit的update的才会受影响,随后跟上来的所有update都 0 rows affected

在配置文件里做修改

#可选参数有:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE.
transaction-isolation = READ-COMMITTED

1.查看当前会话隔离级别

 

select @@tx_isolation;

 

2.查看系统当前隔离级别

 

select @@global.tx_isolation;




0 0