• 事务:

     逻辑上的一组操作,组成这组操作的各个单元,要么全都成功,要么全都失败。
    
  • 事务的特性
    原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)

     原子性:事务不可分割
     一致性:事务执行前后数据完整性保持一致
     隔离性:一个事务的执行不应该受到其他事务的干扰
     持久性:一旦事务结束,数据就持久化到数据库
    
  • 如果不考虑隔离性引发安全性问题

  • 读问题

     脏读		:一个事务读到另一个事务未提交的数据
     不可重复读	:一个事务读到另一个事务已经提交的update的数据,导致一个事务中多次查询结果不一致
     虚读、幻读	:一个事务读到另一个事务已经提交的insert的数据,导致一个事务中多次查询结果不一致。
    
  • 写问题
    丢失更新

  • 解决读问题

    • 设置事务的隔离级别

       Read uncommitted	:未提交读,任何读问题解决不了。
       * Read committed	:已提交读,解决脏读,但是不可重复读和虚读有可能发生。
       * Repeatable read	:重复读,解决脏读和不可重复读,但是虚读有可能发生。
       Serializable		:解决所有读问题。