总共有4钟transaction isolation. Serializable level的transaction,并发运行和挨个执行的结果是一样的。并发的transaction会产生缺陷(phenomena)。Serialization level 的transaction不会有这些缺陷(phenomena)。

在不同transaction levels 中被消灭的缺陷(phenomena)

sex

name

male

李雷

female

韩梅梅

Dirty read: 多条并发transaction中,一个transaction中的sql读取了另一个transaction未提交(committed)的数据。

脏读:

transaction1

transaction2

Begin:

Begin:

Select * from user where sex=’male’;

查出:李雷

Insert into user (‘Jack’,  ‘male’)

Select * from user where sex=’male’;

查出:李雷和 Jack

commit

Nonrepeatable read: 在一个transaction中,一条数据被先后读了两次。由于这中间另外一个transaction修改了这条数据,并提交了,导致第二次读出来的数据和第一次不一样。

transaction1

transaction2

Begin:

Begin:

Select * from user where sex=’male’;

查出:李雷

Insert into user (‘Jack’,  ‘male’)

commit

Select * from user where sex=’male’;

查出:李雷和 Jack

Phantom read: 在一个transaction中,一条查询sql执行了两次。由于中间有另一个transaction提交了数据,导致两次查出来的数据集不同。

transaction1

transaction2

Begin:

Begin:

Select * from user where sex=’male’;

查出:李雷

Insert into user (‘Jack’,  ‘male’)

commit

Select * from user where sex=’male’;

查出:李雷和 Jack

Serialization anomaly:多个transaction并发执行的结果和挨个执行的结果不同。

transaction1

transaction2

Begin:

Begin:

Select * from user where sex=’male’;

查出:李雷

Insert into user (‘Jack’,  ‘male’)

commit

Insert into user (‘MR李雷,  ‘male’)

必须要有这条插入语句,因为只读事务不会混滚

Commit;

提交的时候会回滚,因为查询语句在事务的中途失效了。

不同的事务隔离级别对应解决的问题

Isolation level

Dirty read

Nonrepeatable read

Read phantom

Serialization anomaly

Read uncommitted

×(only in PostgreSQL)

Read committed

×

Repeatable read

×

×

×(only in PostgreSQL)

serialization

×

×

×

×

提醒

Sequence的变化会立即同步给并发的transaction,并且不会因为某一个transaction回滚而回滚squence。同理还有serial。

事务的隔离 transaction isolation相关推荐

  1. mysql隔离级别加锁情况_MySQL数据库事务各隔离级别加锁情况--read committed amp;amp; MVCC...

    上节回顾 上篇记录了我对MySQL 事务 隔离级别read uncommitted的理解. 这篇记录我对 MySQL 事务隔离级别 read committed & MVCC 的理解. 前言 ...

  2. MySQL - 并发控制与事务的隔离级别【头歌】

    目录 相关知识 并发操作可能产生的数据不一致性 MySQL的事务隔离级别 示例 第一关:并发控制与事务的隔离级别 编程要求 测试说明 代码如下 第二关:读脏 任务描述 相关知识 读脏 读脏产生的原因 ...

  3. mysql isolation level_MySQL数据库事务隔离级别(Transaction Isolation Level)

    今天在学习JDBC的时候看到了关于MySql的事务的隔离级别的问题,感觉内容挺高级的,所以记录一篇文章,以备后面使用. 数据库隔离级别有四种,应用<高性能mysql>一书中的说明: 然后说 ...

  4. linux事务隔离级别,事务的隔离级别(Transaction isolation levels)2

    READ COMMITTED READ COMMITTED这是数据库默认的隔离级别.它能保证你不能读取那张表格数据,只要有其它事务还在改变这张表格数据.可是,因为sql server在select操作 ...

  5. 事务的隔离级别(Transaction isolation levels)5

    2019独角兽企业重金招聘Python工程师标准>>> SERIALIZABLE隔离级别可以确保,如果一个查询语句多次执行,不会有数据改变.换句话说,在一个事务里执行相同的查询语句两 ...

  6. postgresql 事务隔离级别 set transaction isolation level

    os: centos 7.4 db: postgresql 10.11 postgresql 默认的 isolation level 为 read committed,可以调整隔离级别. 版本 # c ...

  7. 数据库操作的隔离级别 Transaction Isolation Levels

    by yan 20220223 ANSI/ISO Transaction Isolation Levels(ANSI/ISO标准的隔离级别) (1)未提交读(read uncommitted) (2) ...

  8. mysql transaction用法,mysql的事务,隔离级别和锁用法实例分析

    本文实例讲述了mysql的事务,隔离级别和锁用法.分享给大家供大家参考,具体如下: 事务就是一组一起成功或一起失败的sql语句.事务还应该具备,原子性,一致性,隔离性和持久性. 一.事务的基本要素 ( ...

  9. 理解事务四大特性(Transaction)——原子性、一致性、隔离性和持久性(ACID)

    事务是指对系统进行的一组操作,为了保证系统的完整性,事务需要具有ACID特性,具体如下: 1. 原子性(Atomic) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生. ...

最新文章

  1. java bean命名规范_JavaBean 成员命名规范 | 学步园
  2. 解决无法连接到远程SqlServer 2005 Express服务器的问题
  3. java的国际化怎么用_Java有关国际化使用实例
  4. SpringMVC源码解析(四)——请求处理
  5. 上海市职业介绍中心长宁分中心武夷路513-517号(021)62400032-229
  6. Multi-thread--多线程运行实例
  7. Windows上Python3.5安装Scrapy(lxml) 以及与twisted有关错误的解决
  8. sql update date类型_数据工厂可视化操作与SQL查询——1.基础篇
  9. 拜占庭将军们的投票出了问题
  10. openlayers4+中高德导航路径的实现
  11. python为什么运行不了_终端里为什么无法运行python?
  12. Java暑期实训任务二——单词检测程序
  13. 【Alist + Teracloud】WebDAV免费畅游互联网个人方案总结,一些支持WebDAV的应用推荐
  14. 2013, Samara SAU ACM ICPC Quarterfinal Qualification Contest C.Victor‘s Research
  15. 减小PDF文档大小(转载)
  16. 常用 APP URL Scheme
  17. 车牌识别技术详解一(可用于车牌识别,字符识别,人脸检测,验证码识别等等成熟领域)
  18. adobe cs5全线作品
  19. 垃圾污渍纹理PS笔刷
  20. 物联网,该不该赌一把?【常垒常识】

热门文章

  1. 秦羽成为鸿蒙后和鸿蒙林蒙,鸿蒙三部曲修订稿.docx
  2. 慢慢欣赏linux qemu编译和启动
  3. 百度地图 由起点和终点 获取中间路线的坐标集
  4. CSP认证202209-3:防疫大数据
  5. xxljob 配置具体定时任务_快速使用分布式定时任务 xxl-job
  6. 电力电子技术笔记(2)——电力二极管
  7. Spring Boot中Configuration problem: Cannot locate BeanDefinitionParser for element 的问题分析
  8. ES6 数组转为对象 ,以及 find 在数组里面找到对应一条数据
  9. 雷军回应 “小米手机都是中低端”
  10. Java—统计一篇英文文章中出现的不重复单词的个数