mysql中的事务隔离级别

本文详细介绍了数据库事务的四种隔离级别:读未提交、读已提交、可重复读和序列化。读未提交可能导致脏读,读已提交则可能出现不可重复读,而可重复读则会引发幻读问题。在MySQL中,默认的事务隔离级别为可重复读。通过设置事务隔离级别,如`set global transaction isolation level`,可以解决并发控制中的各种问题,确保数据的一致性和准确性。
摘要由CSDN通过智能技术生成

事务与事务的隔离级别有4种.

1.读未提交:read uncommitted(最低的隔离级别)(没有提交就读到了)

事务A可以读取到事务B未提交的数据.

这种隔离级别存在的问题就是:脏读现象(Dirty Read)

我们称读到了脏数据.

这种隔离级别一般都是理论上的,大多数的数据库隔离级别都是二档起步.

2.读已提交:read committed(提交之后才能读到)

事务A只能读取到事务B提交之后的数据.

这种隔离解决了脏读现象.

这种隔离级别存在的问题是:不可重复读取数据.

不可重复读取数据:在事务开启后,第一次读取到的数据是3条,当前事务还没有结束,可能第二次读到的数据就变成了4条,这样的现象就叫做不可重复读取数据.

这种隔离级别是比较真实的数据,每一次读取到的数据是绝对的真实.

3.可重复读:repeatable read(提交之后也读不到,永远读取的都是刚开启事务时的数据)

可重复读:事务A开启之后,每一次在事务A中读取到的数据都是一致的,即使事务B将数据已经修改,并且提交了,事务A读取到的数据还是没有发生变化,这就是可重复读.

可重读读解决了不可从夫读的问题.

这种隔离级别存在的问题是:每一次读取到的数据都是幻象,不够真实.

mysql中默认的事务隔离级别就是可重复读repeatable read.

4.序列化/串行化:serializable(最高的隔离级别)

最高隔离级别,效率最低,解决了所有的问题.

这种隔离级别表示事务排队,不能并发,每一次读取到的数据都是最真实的.

查看隔离级别的sql语句:select @@transaction_isolation;

mysql默认的隔离级别:可重复读.

设置事务的隔离级别的sql语句:set global transaction isolation level 事务隔离级别;

例如:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值