数据库隔离级别: 未授权读取/ 授权读取/ 可重复读取/ 序列化

关于数据库隔离级别,一共四个隔离级别,未授权读取/ 授权读取/ 可重复读取/ 序列化  整理如下,记录一下:

料风味整理 2019.04.03状态写事务读事务影响应用
Read uncommitted 写事务开启中禁止允许写事务开始的时候也可以读,可能会导致脏读,不一致读取,幻读。 当时因为禁止了写事务,可以保证更新不丢失。excel表在不少情况下是这个级别,比这个级别还低的是text文件,即没有任何隔离
未提交读取/读未提交/未授权读取读事务开启中允许允许读事务如果处理的流程很长,中间有并发写事务,也可能导致脏读、不一致读取、幻读
Read committed 写事务开启中禁止禁止因为写事务开启,禁止其他一切事务进行,所以写事务具有原子性。这样就不会有脏读。要么读取的是修改之前的数据,要么是之后的数据是Oracle和Sql server的默认隔离级别
提交后读取/读提交/授权读取读事务开启中允许允许读事务开启中,如果有写事务是允许的,但这里的写事务是有原子性的。所以一个读事务如果前后有两次或多次读取,这些读取的数据可能是不一致的。这就是傻帽翻译的“不可重复读取。”  另外,也可能存在幻读了。
Repeatable read写事务开启中禁止禁止不会出现脏读和不重合读取是mySQL的默认隔离级别
可重复读取/一致读取/重合读取读事务开启中禁止(非完全)允许因为读事务禁止了写事务,所以update和delete都是不行的,所以不会出现不一致的读取。 但是由于未知行的不存在,无法加锁,所以insert语句还是可以在读事务中间执行,所以可能出现幻读。
Serializable写事务开启中禁止禁止事务只能一个接着一个地执行,不能并发执行。仅仅通过“行级锁”是无法实现事务序列化的,必须通过其他机制保证新插入的数据不会被刚执行查询操作的事务访问到。一般很少用,因为性能影响太大,效率太低
序列化/串行化执行读事务开启中禁止禁止
写事务指的是对数据进行编辑,包含修改和删除,也含新增
读事务读事务是专指只进行查询的事务
脏读取读取的是修改中的未保存的数据,与修改提交后保存在数据库的数据不一致
不可重复读取 可以理解为一个读事务中前后两次或多次读取同一行读出来的数据不一致。又可以翻译为“不一致读取”,或者是“前后读不一致”,或者是“不重合读取”,或者是“有差异读取”,翻译这么多是认为之前的翻译太垃圾了
幻读  在读事务的中间,虽然读事务已经对行进行了加锁,禁止update和delete,但是因为无法对不存在的语句加锁,所以事务中可能存在insert进入新语句的情况,所以在一个读事务中如果前后有两次读取,这两次读取的数据的总条数可能不一样,这称为幻读。
更新丢失修改保存后发现修改的内容没有成功保存到数据库,或者保存后又马上被其他保存覆盖,导致修改信息丢失。text文档在打开多个的情况下,中间保存都可能更新丢失,如果最后一个文件是save,那么以最后更新的为准,其他的更新都丢失。

不足或有错误之处,欢迎指出!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值