事务的隔离级别

事务的隔离级别由低到高的顺序:

      1、Read uncommitted(读未提交的):最低级别,任何情况都无法保证;

      2、Read committed(读已提交的):可避免脏读的发生;

      3、Repeatable read(可重复读):可避免脏读和不可重复读的发生;

      4、Serializable(串行化):可避免脏读、幻读、不可重复读的发生;

脏读:一个事务读取了另个事务没有提交的数据。

不可重复读:在一个事务内多次查询同一个数据,返回结果不一样,读取到了另一个事务修改提交的数据。

幻读:一个事物内读取了别的事务插入的数据,导致查询的数据整体前后不一样。

mysql支持的事务隔离级别:以上四种都支持,默认事务隔离级别是Repeatable read:

Oracle支持的事务隔离级别:Read committed和Serializable,还有只读模式,只读事务只能看到事务执行前就已经提交的数据,且事务中不能执行 INSERT , UPDATE ,及 DELETE 语句。其中默认的事务隔离级别是Read committed。

       由于事务隔离级别越高,导致数据库执行效率低,数据库并发就会受到影响,可以用加锁来实现数据库的并发,当事务在对某个数据进行事务操作前,现象系统申请请求对该数据进行加锁,加锁之后次事务就对该数据具有一定的控制权,直到该事物释放了锁,其他事务才能对其数据进行新的操作。

       oracle的数据库锁分为:

dml锁:用于保护数据的完整性;

ddl锁:用于保护数据库对象的结构,比如表和索引等结构的定义。

数据库锁的机制:

s锁:对数据加了s锁,其他事务可以读取该数据,但是不能修改。

x锁:对数据加了该排他锁后,其他事务不能对该数据进行读取和修改。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值