事务的4个基本属性 ACID
https://draveness.me/mysql-transaction
原子性
事务其实就是并发控制的基本单位;
相信我们都知道,事务是一个序列操作,其中的操作要么都执行,要么都不执行,它是一个不可分割的工作单位;
不可分割的工作单位;
持久性
而事务的持久性就体现在,一旦事务被提交,那么数据一定会被写入到数据库中并持久存储起来。
隔离性
https://draveness.me/mysql-innodb
一致性
举例:银行内转账,要保证银行存款总量不变。
事务的隔离等级
https://draveness.me/mysql-innodb
4个隔离等级
read uncommitted
read committed
repeatable read
serializable
设置隔离等级是 read uncommitted,无法避免脏读发生;
设置隔离级别是 read committed,成功避免了脏读,但是还存在不可重复度的问题;
设置隔离级别是 repeatable read,成功的避免了脏读,不可重复读,但是还有幻读的问题存在;
设置隔离级别是serializable,可以解决幻读的问题。
脏读.png
不可重复读.png
幻读.png
next-key锁.png