最近在学习mysql,当然离不开mysql事务,以下是我经过视频和文档学习
整理下来的笔记,欢迎大家指正!
mysql事务4大特性:ACID
A:原子性(事务内的操作要么都成功,要么都失败)
C:一致性(事务完成时,所有的数据都会保持一致的状态)
I:隔离性(多个事务之间互相隔离,互不干扰,一个事务不被其他事务干扰)
D:持久性(事务一旦提交,对数据库的数据改变就是永久的)
针对事务的隔离性,事务又有不同的隔离级别,后面有演示例子
1.读未提交(可能导致脏读,读到别人未提交的数据)
2.读可提交(可能导致不可重复读,第一次读的数据和第二次读的数据不一致了)
3.可重复读(解决了不可重复读,用快照读可以进行重复读,会产生幻读(当前读的时候),其他事务可能新增了数据,在读取的时候可能产生了换行)
4.串行化读(最高的隔离级别,事务串行执行,避免了脏读,不可重复读等,但性能很低)
幻读和不可重复读的区别
1.幻读更侧重于对数据的新增,删除,而且幻读出现在当前读(读