/**
*
* 原子性:要操作的事务被看作一个整体单元,要么全部成功,要么全部失败
* 一致性:事务完成时,必须所有的数据都保持一致状态
* 隔离性:并发时,防止多个事务交叉进行,而导致的数据不一致,提交后会导致丢失更新
* 持久性:保证数据会固化到一个地方,即永久修改
*
* 第一类丢失更新:并发访问时,将其他事务提交的数据回滚
* 第二类丢失更新:并发访问时,访问同样的记录,T2已提交数据,但T1将错误的旧数据进行提交,
* 这样会引发T2提交的数据丢失,也就是T1无法感知T2的事务操作
*
*
* 隔离级别:
* 未提交读:允许一个事务读取另一个未提交的数据,可能会出现脏读,即读取到另一个事务还没有提交的数据
* 读写提交:允许一个事务读取另一个事务已经提交完成的数据,不能读取未提交的数据,但是可能会出现不可重复读,
* 即一个事务读取到另一个事务未提交前的数据
* 可重复读:当其他事务在进行事务操作的时候,数据库会阻塞读取,等待其他事务提交,提交完成后再读取数据
* 但是可能出现幻读,即读取到了其他事务insert的数据
* 可串行化:这是最高的隔离级别,它强制事务串行执行,避免了前面说的幻读现象,
* 简单来说,它会在读取的每一行数据上都加锁,所以可能会导致大量的超时和锁争用问题。
*
*/