事务

事务的基本属性

  1. 原子性
    事务对数据的修改,要么全都执行,要么全都不执行
  2. 一致性
    如:数据的类型必须正确,数据值必须在规定的范围内,等等。
  3. 隔离性
    不能让其他事务看到该事务的中间状态。
  4. 持久性
    事务完成后,对数据库的影响是永久性的。

SQL的四种隔离级别

  1. Read Uncommitted:读取未提交的数据
  2. Read Committed:读取已提交数据
  3. Repeatable Read:可重复读,在一个事务中,对同一个项,确保前后两次读取结果一样。
  4. Serializable:可序列化,数据库的事务是可串行化执行的。

隔离级别的降低可能导致的异常

  1. Lost Update:第一类丢失更新:两个事务同时修改一个数据项,但是后一个事务中途失败回滚,则前一个事务已提交的修改都可能丢失。
  2. Dirty Reads:一个事务读取了另外一个事务更新却没有提交的数据。Read Committed可以解决。
  3. Non-Repeatable Reads:一个事务对同一数据项的多次读取可能得到不同的结果。Repeatable Read可以解决。
  4. Second Lost Update problem:第二类丢失更新:两个并发事务同时读取和修改同一数据项,则后面的修改可能使得前面的修改失效。Repeatable Read可以解决。
  5. Phantom Read:事务执行过程中,由于前面的查询和后面的查询的期间有另一个事务插入数据,后面的查询结果出现了前面查询结果中未出现的数据。Serializable可以解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值