数据库事务
1 原子性 Atomic 要么都执行,要么都不执行
2 一致性 consistent 保证数据在完成后,所有数据完整性
3 隔离性 insulation 并发事务各个事务隔离,要么是一个事务修改前的数据状态,要么是修改后的,不能有中间态
4 永久性 Duration 事务完成后,对系统的影响是永久性的
隔离性分四个等级
- Read uncommit 末提交读
理解:两个事务,A事务在修改另一条记录,不commit提交,B事务读取这个记录,会读到A事务修改的值,就是对应隔离性中的中间态,导致数据不一致,产生脏读,此等级没人用 - Read commit 提交读
理解:未提交的事务,进行的修改均不会被其它事务看到,这是很多数据库默认的隔离级别 - Repeatable table 可重复读
理解:mysql默认的隔离级别,同一个事务反复读取记录的结果是一致的,解决uncommit问题 - Serializable 可串行化
理解:最高级别,安全最高模式,保证数据强一致性,让事务串行化执行,高并发下会超时,和锁竞争出现,一般情况很用这个级别