事务的概念
- 事务是数据库并发控制的基本单位
- 事务可以看作是一系列SQL语句的集合
- 事务必须要么全部成功,要么全部执行失败(回滚)
事务的四个基本特性 (ACID)
- 原子性(Atomicity):一个事务中所有操作全部完成或失败
- 一致性(Consistency):事务开始和结束之后数据完成性没有被破坏
- 隔离性(Isolation): 允许多个事务同事对数据库修改和读写
- 持久性(Durability):事务结束后,修改是永久的,不会丢失
事务的隔离性
如果不对事务进行并发控制,可能出现的异常
- 幻读:一个事务第二次查询,查出第一次没有的结果
- 非重复读:一个事务冲浓度度两次得到不同的结果
- 脏读:一个事务读取到另一个事务未提交的修改
- 丢失修改:并发写入造成其中的一些修改丢失
事务的四个隔离级别
- 读未提交:别的事务可以读到未提交的修改
- 读已提交:只能读取到已经提交的数据
- 可重复读:同一个事务前后查询结果一样
- 串行化:事务完全串行话,隔离级别最高,执行效率最低
InnoDB 和 MyISAM 区别
- MyISAM 不支持事务,InnoDB 支持
- MyISAM 不支持外键,InnoDB 支持
- MyISAM只支持表锁,InnoDB支持行所和表锁