事务的隔离级别

事务的隔离级别4种

  • Read Uncommited   读未提交,一个事务可以读取另外一个未提交的事务       -------高并发会导致脏读
  • Read Commited     读操作,一个事务必须要等待另一个事务提交后才能读取       ----解决脏读问题,但并发会导致不可重复读
  • Repeatable Read    重复读,开始读取数据(事务开启)时,不再允许修改操作;解决不可重复读问题;并发操作会导致幻读(执行更新操作)
  • Serializable,序列化,最高的事务隔离级别,该级别下,事务串行化顺序执行;避免脏读、不可重复读与幻读;但是该级别效率低下,比较消耗数据库性能,一般不用

Read Commited     读操作     大多数数据库采用的隔离级别,如Oracle、sqlServer

Repeatable Read   重复读   Mysql的默认隔离级别

并发

数据库的锁

  • 根据锁对象不同分为:    行级锁和表级锁
  • 按并发事务锁定关系分为:     共享锁和独占锁
  • 数据库提供自动锁机制,配置事务的隔离级别,根据级别自动加上合适的锁

==========================================================================================

  1. 脏读:一个事务读取另一个未提交的数据
  2. 不可重复读:一个事务范围内两个相同的查询却返回了不同数据
  3. 一个事务范围内两个相同的查询却返回了不同数据。对应的是插入操作
  4. 第1类丢失更新:两个事务均进行更新操作,相互影响,某一事务撤销影响最终结果的准确性
  5. 第2类丢失更新:事务A覆盖事务B已经提交的数据,造成事务B所做的操作丢失。为了避免此问题,可以使用Repeatable Read隔离级别,或者查询和更新操作用where、set price=price+10等类型语句

 

posted @   Joshua_BlueSky  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示