事务

  • 概念:
    如果一个包含多个步骤的业务操作,被事务管理,那些这些操作要么同时成功,要么同时失败。
  • 操作:
    1. 开启事务:start transaction
    2. 回滚:rollback
    3. 提交:commit

事务提交的两种方式:

  1. 自动提交:mysql默认自动提交(Oracle是默认手动提交)

  2. 手动提交:需要手动开启事务并且提交

事务的四大特征

  1. 原子性:是不可分割的最小操作单位
  2. 持久性:当事务提交或者回滚后,数据库数据会持久化
  3. 隔离性:多个事物之间相互独立
  4. 一致性:事务操作前后,数据总量不变

事务隔离的级别

可能出现的问题:

  1. 脏读:一个事务,读取到另外一个事务中没有提交的数据
  2. 虚读(不可重复读):在同一事务中,两次读取到的数据不一样
  3. 幻读:一个事务操作(DML)数据表中所有的记录,另一个事务添加了一条数据,则第一个事务查询不到自己的修改。

隔离级别:

  1. 读未提交(read-uncommitted):脏读,不可重复读,幻读
  2. 不可重复读(read-committed):不可重复读,幻读
  3. 可重复读(repeatable-read):幻读
  4. 串行化(serializable):避开所有的问题,但是效率会变低
posted on 2022-03-07 22:43  之火  阅读(83)  评论(0)    收藏  举报