数据事务及ACID特性、事务回滚

本文深入解析数据库事务的概念,探讨其ACID特性,即原子性、一致性、隔离性和持久性,并介绍不同隔离级别的特点及事务回滚机制。

如有问题,请予以指出,多多指教!

什么是数据库事务?

数据库事务是数据库管理系统在执行过程中的一个逻辑序列,它是由一个有限的数据库操作序列构成,说白了就是一个单位。

start Transaction
update user set money=money-1000 where name=’张三’
update user set money=money+1000 where name=’李四’
commit Transaction
//如果执行成功,就提交事务,别人看到的也是修改后的数据

数据库事务的特性

ACID特性,即指的是Atomic(原子性)、Consistency(一致性)、Isolation(隔离性)、Durability(持久性);

  • Atomic(原子性):将事务看做一个整体,要么一个整体都执行,要么都不执行。
  • Consistency(一致性):事务执行的结果必须是在数据库中从一个一致状态。
  • Isolation(隔离性):一个事务的执行不能被其他事物所干扰。
  • Durability(持久性):事务一旦提交,它对数据库的修改是永久保存的。

隔离性的等级

读未提取:所有事务都可以看到其他未提交事务的执行结果。(可能出现脏读,就是用老数据做事)
读提取:允许写事务,所以会出现不可重复读。
重复读:读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务。(可能出现幻读,重复读数据了,最高隔离不出现幻读问题)
序列化(串行话):提供严格的事务隔离。它要求事务序列化执行,事务只能一个接着一个地执行,但不能并发执行。

事务回滚 rollback Transaction

解释一下事务回滚,如果定义打通关一款游戏为事务,那么你玩到一半的时候突然停电黑屏了(不考虑存档),这时候开机后又要从头开始打。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值