数据库事务、隔离级别、脏读、不可重复读、幻读

事务

就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组DML语句要么全部成功,要么全部失败,是一个整体。MySQL提供一种机制,保证我们达到这样的效果。事务还规定不同的客户端看到的数据是不相同的。(《数据库系统概念》)

数据库中的一个单独的执行单元(Unit),由高级语言编写用户程序的执行所引起。当更改数据成功时,在事务中更改的数据就会被commit,不会再改变。否则,事务就会取消或者回滚,更改无效。(Java程序员面试宝典)

我的理解,其实数据库事务就是数据库进行读/写的操作序列

作用:1.回滚事务 2.隔离操作

事务的特性

  1. 原子性:事务不可再分
  2. 一致性:执行前后,状态一致
  3. 隔离性:不被其他正在进行的事务看到修改过程
  4. 持久性:一旦提交,记录是永久的

4种隔离级别

  1. Read unCommited 读未提交

  2. Read Commited 读已提交
    处理并发下,脏读的现象;
    脏读:某一端看到了未被提交的事务,导致传达不正确。
    A:1
    B:1 (脏数据)
    A:1->2 commit

  3. Repeatable Read 可重复读
    处理并发下,不可重复读的现象;
    不可重复读:是指在一个事务内,多次读同一数据。
    A:1
    B:1
    A:1->2 commit
    B:2

  4. Serializable 可串行化
    处理并发下,幻读的现象;
    幻读:两端同时操作,导致数据混乱。
    A:2 (幻读)
    B:2->1
    A:1 (幻读)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值