必读开发者必备轻松学习MySQL事

刘军连怎么挂号 https://wapjbk.39.net/yiyuanfengcai/ys_bjzkbdfyy/793/yuyue/

“这里是云端源想IT,帮你轻松学IT”

嗨~今天的你过得还好吗?

无论现在多么不开心

你要相信

明天会比今天更好

??

-.11.29-

在日常开发中我们经常会遇到需要同时处理多个操作的情况,比如在购物时,我们需要同时完成支付和更新库存两个操作。这时,如果其中一个操作失败了,我们就需要进行回滚,以保证数据的一致性。

那么,如何在MySQL中实现这样的功能呢?答案就是——事务。下面我们就来介绍一下MySQL事务是什么?它是如何使用的?

一、什么是事务?

事务定义

事务是一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务是一个最小的工作单元)。

一个完整的业务需要批量的DML(insert、update、delete)语句共同联合完成。

事务只和DML语句有关,或者说DML语句才有事务。这个和业务逻辑有关,业务逻辑不同,DML语句的个数不同。

事务是什么?

往通俗的讲就是,事务就是一个整体,里面的内容要么都执行成功,要么都不成功。不可能存在部分执行成功而部分执行不成功的情况。

就是说如果单元中某条sql语句一旦执行失败或者产生错误,那么整个单元将会回滚(返回最初状态)。所有受到影响的数据将返回到事务开始之前的状态,但是如果单元中的所有sql语句都执行成功的话,那么该事务也就被顺利执行。

比如有一个订单业务:

1.订单表当中添加一条记录2.商品数量数据更新(减少)…

当多个任务同时进行操作的时候,这些任务只能同时成功,或者同时失败。

二、事务的特性

事务有四个特性:一致性、持久性、原子性、隔离性。下面分别来解释一下这四个特性都有什么含义。

原子性

事务是一个不可分割的工作单位,要么同时成功,要么同时失败。例:当两个人发起转账业务时,如果A转账发起,而B因为一些原因不能成功接受,事务最终将不会提交,则A和B的请求最终不会成功。

持久性

一个事务一旦提交成功,它对数据库中数据的改变将是永久性的,接下来的其他操作或故障不应对其有任何影响。

隔离性

一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。

一致性

事务执行接收之后,数据库完整性不被破坏。

注意:只有当前三条性质都满足了,才能保证事务的一致性。

刷脏:Mysql为了保证存储效率,于是每次将要读写的文件是先存储在缓存池中,对于数据的操作是在缓存池中,而mysql将会定期的刷新到磁盘中。

三、事务的使用

事务是如何保证操作的完整性的呢?

其实事务执行中间出错了,只需要让事务中的这些操作恢复成之前的样子即可,这里涉及到的一个操作,回滚(rollback)。

事务处理是一种对必须整批执行的MySQL操作的管理机制,在事务过程中,除非整批操作全部正确执行,否则中间的任何一个操作出错,都会回滚(rollback)到最初的安全状态以确保不会对系统数据造成错误的改动。

相关语法:

--开启事务

starttransaction;

--若干条执行sql

--提交/回滚事务




转载请注明:http://www.aierlanlan.com/rzdk/9104.html