mysql:事务处理

事务处理
事务ACID特性
事务的隔离级别

事务的基本概念:

事务:一个事务是有一个或者多个SQL语句组成的一个不可分割的单元。只有事务中的所有操作都正常完成,那么整个事务会提交给数据库。如果有部分数据处理失败,那么整个事务就会回退到最初的状态。因此:事务要么成功,要么失败。

通俗解释:事务就是要完成某项任务时的sql语句,而且具有原子操作,为什么会有原子操作?因为衡量一个事务的整体,只有sql语句完全执行成功,才会说明成功,如果中间出现错误就会从头再来,就是常说的“回滚”,再任务完成后,就会提交给磁盘。出现错误我们为了不从头再来,可以将执行成功的语句设置保存点,以便后面存在错误直接返回到最近的保存点即可。

事务特点:

1、事务是一组SQL语句的执行,要来全部成功,要么全部失败,不能出现部分成功。
    保证事务执行的原子操作。
2、事务的所有SQL全部执行完成,才能提交(commit)事务,把结果写入磁盘。
3、在SQL执行的过程中,有SQL出现错误了,那么事务要回滚(rollback)到初始状态

update  a: 5 ->8
设置保存点 SavePoint  f1;   
select
update    a : 8 ->7

注意:设置保存点的作用是再sql执行过程中出现错误可以回滚到保存点处,而不同回滚到最初状态。提高数据库操作效率。

事务的ACID特性:


每一个事务必须满足下面4个特性:
事务的原子性(Atomic):
          事务是一个不可分割的整体,事务必须具有原子特性
事务的一致性(Consistency):
   一个事务执行之前和执行之后,数据库数据必须保持一致性状态。
   数据库的一致性状态需要用户来负责,由并发控制机制实现。
   eg:网上购物来说,将商品加入购物车,商品的库存介绍、到商品加入购物车是一个完整性的事物。
       由于并发操作带来的数据不一致性问题包括数据脏读,不可重复读,幻读。
事务的隔离性(Isolation):
   当两个或者多个事务并发操作时,为了保证数据的安全性,将一个事务的内部操作和其他事务隔离起来,不被其他正在执行的事务所看到。
   假如事务t1和事务t2并发操作时,对t1而言,要么是在t2执行完成之后执行,那么是可以看到t2执行的结果。
   要是在t2之前执行完成,那么t2能够看到t1执行的结果。
事务的持久性(Durability)
   事务完成之后,数据库中的数据永久性的保存下来,即使数据库出现故障,也能回复数据

 

事务的特性:原子性针对事务整体说的,一致性:避免并发操作导致数据前后不一致的问题,如何避免数据不一致,加锁操作,对于innodb类型的表行级加锁;隔离性:多个事务同时执行独立执行,相互不影响,如何做到事务之间相互不影响????

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值