数据库事务
大约 1 分钟
数据库事务
数据库事务的特性
- 原子性:一个事务包含的行为要么全部成功,要么全部不成功,如果在执行中间发生错误,则会进行事务回滚,回滚到事务开始之前的状态
- 一致性:事务执行完毕后不会对数据库的完整性造成破坏
- 事务的隔离:由于数据库的事务支持多线程,事务隔离是为了防止多个线程的事务造成数据不一致 持久性:事务完成后,对数据的修改是永久的,哪怕系统故障也不会消失
数据库事务的隔离级别
- 未提交读:可以读到其他线程修改但没提交的数据,如果那个线程产生错误从而导致回滚,那么这次读取的数据就是脏数据
- 提交读:事务在读取数据的过程中,有其他线程事务修改了数据,造成前后数据不一致
- 重复读:一开始读取数据为空,但是尝试修改这条不存在的数据却成功了,此时再读取该数据又可以读取到了
- 串行读:是最严格的隔离级别。严格按照先后次序执行,但会造成效率大大下降
