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

mysql-事务

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

mysql-事务

什么是事务?

一个事务一个完整的业务逻辑,要不同时成功,要不同时失败,不可再分。只有DML(insert,delete,update)语句才会有事务一说,其它语句和事务无关!! 事务是如何实现的


怎么提交事务和回滚事务

提交事务:commit;语句
回滚事务:rollback;语句
回滚永远只能回滚到上次的提交点,提交事务后就不可进行回滚
mysql是默认自动提交事务的,即每执行一条语句就提交一次事务,而这时候失败不能执行回滚的

所以我们需要先一条命令 “START TRANSACTION”:手动开启事务

可以看到当前数据表中三条数据,我们这时手动开启事务,并添加三条数据

这时候我们是可以回滚事务的,因为这时的数据是在一个日志文件中,并没有持久化到数据库表中,即我们现在所看到的数据是在日志文件中的,数据库并不会持久化的去保存这一系列数据(三条insert语句),而我们说到回滚事务是在回滚到上一次的提交点,那上一次的提交点在哪?就在我们第一次查看到 的那三条数据

所以我们此时回滚事务,是会将数据表的数据回到上一次的提交点,即最开始的那三条数据

我们也可提交事务,提交事务后本次事务不可再次回滚,数据也将持久化到数据库表中

commit --提交事务 事务的四大特性

    A: 原子性
    说明事务是一次完整的业务逻辑,不可再分C: 一致性
    再同一个事务中,所有操作要不同时成功,要不同时失败,以保证数据的一致性I: 隔离性
    A事务与B事务之间具有一定的距离
    A事务在操作一张表时,B事务也操作这张表会怎样?D: 持久性
    事务最终结束的一个保障。事务提交,就相当于将没有保存到硬盘(数据库中,而不是日志文件)上的数据保存到硬盘上!
事务的隔离的级别

事务A与事务B之间中一道墙,这道墙可以很厚,也可以很薄。这就是事务的隔离级别。
这道墙越厚,表示隔离级别就越高

事务和事务之间的隔离级别有哪些? 4个级别
    读未提交(最低的隔离级别)
    A事务可以读取到B事务未提交的数据。
    存在问题:脏读现象读已提交
    A事务只能读取到B事务提交之后的数据
    解决了脏读现象,但是不可重复读
    oracle数据库默认的隔离级别,这种隔离级别是比较真实的数据,每次读取的数据都是绝对的真实可重复读
    A事务开启之后,不管是多久,每一次在事务A中读取到的数据都是一致的。即使事务B将数据已经改变,并且提交了,事务A读取到的数据还是没有发生改变。
    解决了不可重复读的现象,但是存在幻觉读
    mysql默认隔离级别就是可重复读!!!序列化读(最高的隔离级别)
    这是最高的隔离级别,效率最低,也最安全,解决看所有问题。
    表示事务排队,不能支持并发

查看事务隔离级别四种隔离级别展示

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

版权所有 (c)2021-2022 MSHXW.COM

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