一.事务概述
问题1:什么是事务?
事务就是一件事情,这个事情由多个单元组成,这些单元执行时要么都成功,要么都不成功.
问题2:事务特性? (ACID)
- 1.原子性
- 2.一致
- 3.隔离性
- 4,持久性
问题3:关于不考虑事务的隔离性,会产生的问题?
- 1.脏读----读取到另一个事务未提交的数据
- 2.不可重复读---两次取的数据不一致(update)
- 3.虚读---两次读取的数据不一致(insert)
- 4,更新丢失---后提交的事务将前面事务提交的数据覆盖了。
问题4:关于 脏读 不可重复读 虚读 解决?
设置事务的隔离級别:
- 1.read uncommitted----------什么也解决不了
- 2.read committed-------------脏读不可解决不可重复读
- 3.REPEATABLE READ-----脏读,不可重复读,不能解决虚读
- 4.SERIALIZABLE------------什么都可以解决
在开发中一般使用 read_committed repeatable_read
mysgl默认隔离级别是 repeatable_read
orache默认隔离級别是 read_committed
查看隔离級别 select @@tx_isolation;
修改隔离級别 set session transaction isolation level 级别·