一文讲清楚事务隔离性
隔离性是啥
一个人操作数据库的时候,其他人都看不见

实现原理
其他人不能读(mvcc)

其他人不能写
通过加锁(锁)

具体实现
mvcc
read-view一般由两部分组成:
- 一部分由执行查询时所有未提交事 务id数组(数组里最小的id为min_id)
- 另一部分是已创建的最大事务id(max_id),因为trx_id在数据库中是递增的。
- 可重复读隔离级别下:一个事务中,多次查询的read-view不变
- 读已提交隔离级别下:一个事务中,每次查询的read-view都会改变!


排他锁
小红对取前的时候加上了锁(排他锁),所以其他人不能取钱了,所以等小红这个操作(事务)结束了,这把锁才能解开
注意
-- 事务的开始时间是更新操作执行的时候
-- 读未提交没有mvcc的控制,因为读的时候不加任何锁,所以可以读取其他事务未提交的数据
-- 串行化select的时候会自动加共享锁,所以此时不能读取其他事务修改的数据

浙公网安备 33010602011771号