如有问题,请予以指出,多多指教!
什么是数据库事务?
数据库事务是数据库管理系统在执行过程中的一个逻辑序列,它是由一个有限的数据库操作序列构成,说白了就是一个单位。
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
解释一下事务回滚,如果定义打通关一款游戏为事务,那么你玩到一半的时候突然停电黑屏了(不考虑存档),这时候开机后又要从头开始打。
本文深入解析数据库事务的概念,探讨其ACID特性,即原子性、一致性、隔离性和持久性,并介绍不同隔离级别的特点及事务回滚机制。

1499

被折叠的 条评论
为什么被折叠?



