事务
- 概念:
如果一个包含多个步骤的业务操作,被事务管理,那些这些操作要么同时成功,要么同时失败。 - 操作:
- 开启事务:start transaction
- 回滚:rollback
- 提交:commit
事务提交的两种方式:
-
自动提交:mysql默认自动提交(Oracle是默认手动提交)
-
手动提交:需要手动开启事务并且提交
事务的四大特征
- 原子性:是不可分割的最小操作单位
- 持久性:当事务提交或者回滚后,数据库数据会持久化
- 隔离性:多个事物之间相互独立
- 一致性:事务操作前后,数据总量不变
事务隔离的级别
可能出现的问题:
- 脏读:一个事务,读取到另外一个事务中没有提交的数据
- 虚读(不可重复读):在同一事务中,两次读取到的数据不一样
- 幻读:一个事务操作(DML)数据表中所有的记录,另一个事务添加了一条数据,则第一个事务查询不到自己的修改。
隔离级别:
- 读未提交(read-uncommitted):脏读,不可重复读,幻读
- 不可重复读(read-committed):不可重复读,幻读
- 可重复读(repeatable-read):幻读
- 串行化(serializable):避开所有的问题,但是效率会变低
浙公网安备 33010602011771号