数据库事务

事务(Transaction)是并发控制的基本单位。

所谓的事务,它是一个操作序列,这些操作要么都执行要么都不执行,它是一个不可分割的工作单位。

事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。 

简单地说,事务是一种机制,用以维护数据库的完整性。

事务的开始:

BEGIN或START TRANSACTION都是显式开启一个事务;

事务的提交:

COMMIT或COMMIT WORK都是等价的;

事务回滚:

ROLLBACK或ROLLBACK WORK也是等价的;
事务的开始提交回滚

事务四个特性(ACID):
1.原子性(Atomicity):事务中的各个操作要么都做要么都不做
2.一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态
3.隔离性(Isolation):一个事务的执行不能被其他事务干扰
4.永久性(Durability):一个事务一旦提交,它对数据库中数据的改变就应该是永久性


脏读:一个事务处理过程里读取了另一个未提交事务的数据

不可重复读:一个事务内多次查询却返回了不同的数据值(强调update)

幻读:一个事务范围多次查询返回不同的数据值(强调 insert,delete)

 

Sring中五种隔离级别:

    TRANSACTION_NONE:不使用事务

    TRANSACTION_READ_UNCOMMITTED:允许脏读

    TRANSACTION_READ_COMMITTED:防止脏读,最常用的隔离级别,大多数数据库默认的隔离级别

    TRANSACTION_REPEATABLE_READ:防止脏读和不可重复读

    TRANSACTION_SERIALIZABLE:防止脏读,不可重复读,幻读,效率低

 

回滚:回滚通常是由数据库日志管理的,回滚时反向执行从事务开始时的所以日志。其他运行的事务可能依赖于被回滚的事务的结果,在这种情况下,这些依赖的事务也会被回滚

转载于:https://www.cnblogs.com/liuxgcn/p/11137586.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值