栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

数据库——事务

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据库——事务

事务
  • 一、事务(transaction)
    • 1.什么是事务
    • 2.提交事务与回滚事务
      • (1)提交事务
      • (2)回滚事务
      • (3)mysql自动提交机制
    • 3.事物的4个特性
      • (1)原子性(A)
      • (2)一致性(C)
      • (3)隔离性(I)
        • 读未提交 read uncommitted(最低隔离级别)
        • 读已提交 read committed
        • 可重复读 repeatable read
        • 序列化/串行化 serializable(最高隔离级别)
        • 查看事务隔离级别
        • 设置事务全局隔离级别
      • (4)持久性(D)

一、事务(transaction) 1.什么是事务

(1)一个事务其实就是一个完整的业务逻辑,一个最小的工作单元,不可再分。 通俗来说,一个事务就是多条DML语句同时成功或者同时失败。
(2)只有DML(insert delete update)语句和事务有关系,因为以上三个语句是数据库表中数据进行增删改的,只要操作一旦涉及到数据的增删改,那么就必须考虑安全。

2.提交事务与回滚事务 (1)提交事务

(1)使用 commit; 语句,提交事务
(2)提交事务:清空实务性活动的日志文件,讲数据全部彻底持久化到数据库表中。提交事务标志着事务的结束,是一种全部成功的结束。

(2)回滚事务

(1)使用 rollback; 语句回滚事务,永远只能回滚到上一次的提交位置。
(2)回滚事务:将之前所有的DML操作全部撤销,清空实务性活动的日志文件。回滚事务标志着事务的结束,是一种全部失败的结束。

(3)mysql自动提交机制

(1)mysql是自动提交的,每执行一条DML语句,则提交一次
(2)关闭自动提交:先执行 start transaction; 语句

3.事物的4个特性 (1)原子性(A)

说明事务是最小的工作单元,不可再分

(2)一致性(C)

在同一个事务中,所有操作必须同时成功,或者同时失败,以保证数据的一致性

(3)隔离性(I)

A事务和B事务之间有一定的隔离,

事务之间的隔离级别 :

读未提交 read uncommitted(最低隔离级别)

(1)概念 : 事务A可以读取到事务B未提交的数据
(2)问题 : 脏读,称为读到了脏数据
(3)一般属于理论上的隔离级别,没有使用

读已提交 read committed

(1)概念 : 事务A只能读取到事务B提交之后的数据,解决了脏读现象
(2)问题 : 不可重复读取数据,在事务开启之后,第一次读到的数据是3条,但是当前事务还没有结束,可能第二次读的时候读到的数据是4条,3!=4 称为不可重复读。
(3)这种隔离级别每一次读到的数据都是绝对真实的

可重复读 repeatable read

概念 : 事务A开启之后,不管多久,每一次在事务A中读到的数据都是一致的。即使事务B将数据已经修改并且提交了,事务A读取到的数据还是没有发生改变,解决了不可重复读。
问题 : 可能会出现幻影读,每一次读到的 数据都是幻想,不够真实

序列化/串行化 serializable(最高隔离级别)

表示事务排队不能并发,每一次读取到的数据都是最真实的,并且效率最低。

查看事务隔离级别
select @@tx_isolation;
设置事务全局隔离级别
//后面自己加要改的隔离级别,这里加的 read uncommitted
set global transaction isolation level read uncommitted;
(4)持久性(D)

事务最终结束的一个保障,事务提交,相当于将没有保存到硬盘上的数据保存到硬盘上

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1039978.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号