一、piggy
- piggy:单点登录? 重构优化?
二、事务
1、事务的特性
- Atomicity 原子性
- Consistency 一致性
- Isolation 隔离性(最复杂)
- Durability 持久性
2、事务的隔离性
- 脏读:指一个事务读取了另外一个事务未提交的数据。
- 不可重复读:在一个事务内读取表中的某一行数据,多次读取结果不同。
- 虚读(幻读):是指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致。
3、数据库共定义了四种隔离级别:
- serializable:可避免脏读、不可重复读、虚读情况的发生。(串行化)。(为什么开启这个级别的一个事务,另一个事务还是能插入数据呢?跟实验做出来的不一样)
- repeatable read:可避免脏读、不可重复读情况的发生。(可重复读)。(幻读可能不会发生)(数据库默认的)
- read committed:可避免脏读情况发生(读已提交)。
- read uncommitted:最低级别,以上情况均无法保证。(读未提交)
- 设置事务隔离级别。如:set transaction isolation level read uncommitted; (为什么开启事务之后,select * from account,事务隔离性就会失效呢?)
查询当前事务隔离级别:select @@tx_isolation; - mysql支持这四种隔离级别(因为mysql是按标准来设的);oracle只支持其中两种。