Mysql 事务隔离级别
事务带来的问题
- 脏读:当前事务读取到其他事务未提交的数据。
- 不可重复读:事务两次读到的数据不一致。
- 幻读:一个事务读取某个范围内的数据,另一个事务在这个范围内增加了一条数据,先前的事务又读取了该范围,结果读到了新的数据,这个数据就叫幻行。
隔离级别
隔离级别 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|
READ UNCOMMITED(未提交读) | Yes | Yes | Yes |
READ COMMITED(提交读) | No | Yes | Yes |
REPEATABLE READ(可重复读) | No | No | Yes |
SERIALIZABLE(可串行化) | No | No | No |
介绍
READ UNCOMMITED(未提交读)
在这个级别下,事务的修改对其他事务是可见的,不管该事务有没有提交。脏读、不可重复读和幻读都会发生。
READ COMMITED(提交读)
在这个级别下,只读其他事务提交后的数据,但可能两次查询得到不一样的结果,可以解决脏读的问题。
REPEATABLE READ(可重复读)
在这个级别下,满足同一事务多次读取数据一致,只会出现幻读。Mysql
的存储引擎 InnoDB
使用 next key locking
解决幻读的问题。注意这是 Mysql
默认的隔离级别。
SERIALIZABLE(可串行化)
在这个级别下,事务串行执行,它会对所有读到的数据加锁,所以没有任何数据不一致的问题,因此性能也很差。
参考
相关推荐
DriveCar 2020-09-07
quniMdejiangyou 2020-08-15
zhanbuquan 2020-07-04
liaomingwu 2020-06-25
zhanbuquan 2020-06-21
vincen 2020-06-10
zjx0 2020-05-20
愿天下再无BUG 2020-05-16
MissFuTT 2020-05-11
好记忆也需烂 2020-05-10
wenjieyatou 2020-05-06
bluet00 2020-05-05
jiong 2020-04-19
逍遥斩舞 2020-04-17
achiverhai 2020-04-16
zhengsj 2020-03-28
lpfvip00 2020-06-25
variab 2020-06-13
sunysh00 2020-06-11
DriveCar 2020-06-09
sofast 2020-06-03
weikaixxxxxx 2020-05-30
neweastsun 2020-05-27
sunysh00 2020-05-25
pengpengflyjhp 2020-05-14
inhumming 2020-05-10
silencehgt 2020-05-09