MySQL中的四种隔离级别

 首先先来理解几个概念:

        一、脏读

                脏读是指事务A读取到了事务B更新了但是未提交的数据,然后事务B由于某种错误发生回滚,那么事务A读取到的就是脏数据,称之为脏读。

        二、不可重复读

                不可重复读指在数据库访问时,一个事务在前后两次相同的访问中却读取了不同的数据内容。

        三、幻读

                幻读是指事务A在查询完记录总数之后,事务B执行了新增数据的操作,事务A再次查询记录总数,发现两次查询的结果不一致,平白无故的多了几条记录,这种现象称为幻读。


MySQL中的四种隔离级别:

隔离级别脏读不可重复读幻读
Read uncommitted(读未提交)
Read committed(读已提交)
Repeatable read(可重复读)
Serializable(可串行化)

        一、Read uncommitted(读未提交):

                在该级别中,所有的事务都可以看到其它未提交事务的执行结果,该隔离级别很少用于实际应用。读取未提交的数据,也称之为脏读。

        二、Read committed(读已提交):

                这是大多数数据库系统的默认隔离级别(但是不是MySQL默认的)。读已提交隔离级别就是在事务未提交之前所做的修改其他事物是不可见的。反过来说就是:一个事物只能看见已提交事务所做的改变。

        三、Repeatable read(可重复读):

                这是MySQL的默认隔离级别。保证同一事务中的多次相同的查询的结果是一致的。

        四、Serializable(可串行化):

                这是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简而言之:它是在每个读的数据行上加上共享锁,保证读取的范围内没有新的数据插入。但是在这个级别可能导致大量的超时现象和锁竞争。

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值