一、背景

对于两个并发执行的事务,如果涉及到操作同一条记录的时候,可能会发生问题。

因为并发操作会带来数据的不一致性,包括

  • 脏读、
  • 不可重复读、
  • 幻读

等。

1. 脏读(Dirty Read)

一个事务会读到另一个事务更新后但未提交的数据,如果另一个事务回滚,那么当前事务读到的数据就是脏数据,这就是脏读(Dirty Read)。

2. 不可重复读(Non Repeatable Read)

不可重复读是指,在一个事务内,多次读同一数据,在这个事务还没有结束时,如果另一个事务恰好修改了这个数据,那么,在第一个事务中,两次读取的数据就可能不一致。

3. 幻读(Phantom Read)

幻读是指,在一个事务中,第一次查询某条记录,发现没有,但是,当试图更新这条不存在的记录时,竟然能成功,并且,再次读取同一条记录,它就神奇地出现了。

二、事务的隔离级别

数据库系统提供了隔离级别来让我们有针对性地选择事务的隔离级别,避免数据不一致的问题。

SQL标准定义了4种隔离级别,分别对应可能出现的数据不一致的情况:

Isolation Level 脏读(Dirty Read) 不可重复读(Non Repeatable Read) 幻读(Phantom Read)
Read Uncommitted Yes Yes Yes
Read Committed - Yes Yes
Repeatable Read - - Yes
Serializable - - -

https://www.liaoxuefeng.com/wiki/1177760294764384/1179611198786848

https://blog.csdn.net/yamaxifeng_132/article/details/86683909

数据库学习笔记2-隔离等级 isolation level相关推荐

  1. 数据库学习笔记(1)

    数据库学习笔记(1) 文章目录 数据库学习笔记(1) @[toc] DB 基本概念 连接数据库的三要素 元数据 mongoose 查询符合对象数组中某个对象的值 redis 是什么 存储的数据类型 r ...

  2. 01. 数据库中事务的隔离等级及如何设置

    一 数据库事务四个特性 数据库的事务指的是一种机制,一系列的操作指令集合,是并发的系统上的最小控制单元 事务把一系列的的命令作为一个整体,一同向数据库进行提交或者回滚,一个事务内的命令要么全部成功,要 ...

  3. linux数据库创建score表,MySQL数据库学习笔记

    MySQL数据库学习笔记phpma (实验环境:Redhat9.0,MySQL3.23.54) 纲要: 一,连接MySQL phpma 二,MySQL管理与授权 三,数据库简单操作 四, 数据库备份 ...

  4. MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  5. 【数据库学习笔记】——cursor游标对象

    目录 1.创建cursor对象 2.cursor对象常用方法 3.操作数据库的常见流程(五部曲) 课程视频链接: 第14节 Python操作数据库_哔哩哔哩_bilibili666https://ww ...

  6. MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)...

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  7. 【数据库学习笔记】Day03 - SQL语言基础及数据库定义功能

    [数据库学习笔记]Day03 - SQL语言基础及数据库定义功能 〇.本文所用数据库表格: 一.关系运算: 关系运算,数学名词,基本运算有两类:一类是传统的集合运算(并.差.交等),另一类是专门的关系 ...

  8. 数据库学习笔记(一) | 数据(Data)的定义

    数据库学习笔记(一) | 数据(Data)的定义和种类 什么是数据(Data) 结构化数据(Structured Data) 半结构化数据(Semi-structured Data) 非结构化数据(U ...

  9. 国产达梦数据库学习笔记(一):NeoKylin7.0安装及配置与常用基础命令

    国产达梦数据库学习笔记(一):NeoKylin7.0安装及配置与常用基础命令 以VMware Workstation Pro 15环境下的NeoKylin7.0与DM8为例 中标麒麟系统NeoKyli ...

  10. 【数据库学习笔记】Day06 - 关系数据库规范化理论

    [数据库学习笔记]Day06 - 关系数据库规范化理论 目录 一.关系数据库中存在的数据冗余问题 二.函数依赖 三.关系规范化 一.关系数据库中存在的数据冗余问题: 以学生信息表为例: 该关系模式存在 ...

最新文章

  1. 2016 VR年终大趴行业大佬齐聚,共同探讨AR、VR的商业化道路之变
  2. 想在小程序上“飙车”?特斯拉小程序做到了
  3. UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 199: illegal multibyte sequence
  4. window下jansson安装和使用
  5. jquery实现对radio赋值
  6. leetcode950. 按递增顺序显示卡牌
  7. 51单片机50个实例代码_【附代码】51单片机电子密码锁教程
  8. 跨域获取后台数据undefined_同源策略amp;JSONP跨域
  9. python线性规划教程_python 利用cvxopt线性规划
  10. 应用安全-软件安全-漏洞修复整理
  11. C++算法之 一句话推断一个整数是不是2 的整数次方
  12. python艺术签名_用 Python 制作一个艺术签名小工具,给自己设计一个优雅的签名...
  13. 腾讯云重装和还原操作系统
  14. 盘点愚人节各大网站彩蛋,谁最爱恶搞?
  15. 电脑问题处理篇5:解决电脑突然蓝屏问题
  16. 文本检测之-craft检测算法
  17. WebSocket 获取客户端的IP
  18. 精品英文字体:20款免费的的圣诞节艺术字体
  19. 04-前端技术_ javaScript内置对象与DOM操作
  20. 【STM32】STM32之DRV8834电机驱动(PWM方式)

热门文章

  1. 最近帮客户优化的一个通讯应用
  2. Mysql源码编译安装主从复制
  3. java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter
  4. 数据结构之简单排序算法
  5. [android开发IDE]adt-bundle-windows-x86的一个bug:无法解析.rs文件--------rs_core.rsh file not found...
  6. SDUT 2138 图结构练习——BFSDFS——判断可达性
  7. sqlserver2008的数据库自动备份方法(转载)
  8. 使用PhoneNumberValidator判断用户输入的电话格式,并用PhoneFormatter对电话号码格式化。...
  9. 正太分布几个简单证明
  10. 科学技术的不完备性及其实践意义