数据库基础知识

事务的四大特性

  • 原子性:事务中的所有操作都是原子的,要么全部成功要么全部失败,不存在中间状态。
  • 一致性:状态的变化必须一致,比如转账,a->b,a减少多少,b必须增加多少。
  • 隔离性:事务之间是隔离的,不能互相影响,有多种隔离级别。
  • 持久性:事务完成后是持久的,不会因为宕机故障导致数据问题。

不考虑隔离级别会引发的问题

  • 脏读:事务A读取到了事务B还未提交的数据。
  • 不可重复读:一个事务中两次一样的查询读取到不同的数据。
  • 幻读:事务A更新一批数据状态变成2,更新期间插入新的数据状态依然为1,事务A结束后查询这批数据发现依然有状态为1的。

数据库的隔离级别

  • 序列化:事务串行执行,效率最低,能防止脏读、不可重复读、幻读。
  • 可重复读:同事务中可重复读,能防止脏读、不可重复读。
  • 读提交:能防止脏读。
  • 未提交读:啥都防止不了。
    MySQL默认可重复读,Oracle默认读已提交

你可能感兴趣的:(数据库基础知识)