Hibernate中的事务隔离问题(脏读、不可重复读、幻读)

Hibernate中的事务隔离问题(脏读、不可重复读、幻读)

1.事务的特性

事务的四个特性:

1)原子性:事务是进行数据库操作的最小单位,所以组成事务的各种操作是不可分割的

2)一致性:组成事务的各种操作,要么全部成功,要么全部失败。其中有一个失败,事务无法完成

3)隔离性:在并发中,每个事务都是独立的

4)持久性:这是结果,表示在事务提交之后,数据将持久的保存到数据库

2.事务的隔离问题

事务的三个隔离问题:

1)脏读:一个事务读到了另一个事务还没提交的数据

如:A事务正在读一个数据a,但是这个数据被B事务读过,但是B事务还未提交。这就导致A事务读到了错误的数据

2)不可重复读:一个事务读到了另一个事务已经提交的数据

如:A事务中有两次相同的读取数据a的操作,第一次对数据a进行了读操作之后,B事务修改了数据a并提交,那么在A事务第二次读取数据a时,就得到了两个不同的结果

3)幻读:像发生了幻觉一样的操作

如:A事务在对一个表中的全部数据进行修改时,B事务向表中插入了一条新的数据,当A事务提交之后,你会发现还有一条数据(就是B事务新增的数据)没被修改。这就像发生了幻觉一样

3.事务的隔离级别

1) Serializable (串行化):可避免脏读、不可重复读、幻读

2) Repeatable read (可重复读):可避免脏读、不可重复读

3) Read committed (读已提交):可避免脏读

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java3y

Mysql免安装配置教程(图文版)

Mysql免安装版配置教程 图文版 配置环境变量 ? 新建一个my.ini文件,添加下面内容 [mysqld] basedir=C:\\soft...

3825
来自专栏云计算教程系列

如何在Ubuntu 16.04上安装和配置Zabbix以安全地监视远程服务器

Zabbix是用于web和应用程序的开源监控软件。它提供对从服务器,虚拟机和任何其他类型的网络设备收集的数千个指标的实时监控。这些指标可帮助确定IT基础架构的当...

1903
来自专栏JAVA高级架构

高性能 MySQL 笔记

MySQL架构和历史 MySQL逻辑架构 ? 第一层处理网络连接等, 比如链接认证授权等 第二层是 MySQL 的核心, 用来解析优化 SQL 语句, 设计缓存...

3039
来自专栏LanceToBigData

MySQL(十三)之MySQL事务

前言   这段时间自己会把之前学的东西都总结一遍,希望对自己以后的工作中有帮助。其实现在每天的状态都是很累的,但是我要坚持!   进入我们今天的正题:   为什...

2446
来自专栏北京马哥教育

MySQL数据库事务隔离级别

数据库隔离级别有四种,应用《高性能mysql》一书中的说明: ? ? 然后说说修改事务隔离级别的方法: 1.全局修改,修改mysql.ini配置文件,在最后加上...

4056
来自专栏北京马哥教育

FTP基于PAM和MySQL/MariaDB实现虚拟用户访问控制

前言 vsftpd是一款在Linux发行版中最受 推崇的FTP服务器程序,特点是小巧轻快,安全易用,目前在开源操作系统中常用的FTP套件主要有proftp...

3425
来自专栏PHP在线

MySQL InnoDB四个事务级别 与 脏读、不重复读、幻读

MySQL InnoDB事务的隔离级别有四级,默认是“可重复读”(REPEATABLE READ)。 1).未提交读(READUNCOMMIT...

4876
来自专栏大白虾谈架构

CentOS6.5安装mysql5.1.73

1263
来自专栏Django Scrapy

数据库相关知识

mysql 是关系型数据库 开源,免费 什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就...

38313
来自专栏aoho求索

MySQL探秘(六):InnoDB一致性非锁定读

 一致性非锁定读(consistent nonlocking read)是指InnoDB存储引擎通过多版本控制(MVVC)读取当前数据库中行数据的方式。如果读取...

1104

扫码关注云+社区

领取腾讯云代金券