当前位置:Gxlcms > 数据库问题 > 【转】新说Mysql事务隔离级别

【转】新说Mysql事务隔离级别

时间:2021-07-01 10:21:17 帮助过:13人阅读

是快照读,是不加任何锁的,根本不能解决幻读问题,除非你用

select *  from tx_tb where pId >= 1 lock in share mode;

这样,你就用上了next-key locks,解决了幻读问题!

4、串行读(SERIALIZABLE_READ)

在该隔离级别下,所有的select语句后都自动加上lock in share mode。因此,在该隔离级别下,无论你如何进行查询,都会使用next-key locks。所有的select操作均为当前读!
技术图片
OK,注意看上表红色部分!就是因为使用了next-key locks,innodb将PiD=1这条索引记录,和(1,++∞)这个间隙锁住了。其他事务要在这个间隙上插数据,就会阻塞,从而防止幻读发生!
有的人会说,你这第二次查询的结果,也变了啊,明显和第一次查询结果不一样啊?对此,我只能说,请看清楚啊。这是被自己的事务改的,不是被其他事物修改的。这不算是幻读,也不是不可重复读。

总结

上面罗里吧嗦一大堆,最后来一个表格做总结吧,你面试答这个表就行。上面的一切是为了这张表做准备!

隔离级别脏读不可重复读幻读
读未提交
不可重复读
可重复读
串行化

【转】新说Mysql事务隔离级别

标签:nsa   key   scan   isolation   内容   appear   mysql   man   否则   

人气教程排行