前言:
如今各位老铁们对“不重复的sql语句”大体比较注重,兄弟们都需要剖析一些“不重复的sql语句”的相关知识。那么小编同时在网摘上汇集了一些对于“不重复的sql语句””的相关知识,希望大家能喜欢,你们快快来学习一下吧!不可重复读阶段三(下)。
演示完了张读以后,给大家演示一下不可重复读。不可重复读指的是什么?指的是两次一个数中两次读取到的数据不一致。为了数据的完整性,为了好看,又还原成一千。
把格式级别设置为读已提交,因为不可重复读的格式级别要求的就是用读未提交也行,但是读未提交是不是就有可能还会产生脏读的问题?为了数据看的更完整,为了不受其他的一些干扰,把读的问题屏蔽掉。所以设置的格式级别是读已提交。
在这里面设置读已提交,另外一个窗口是不是也要设置为读已提交?读已提交已经解决了张读的问题了。现在要演示的是不可重复读,读已提交是会产生不可重复读的问题的,还会产生幻读。这两个问题里面画了个表格,大家一定要背下来、记下来。
隔离级别已经演示完了,设置完了之后数据也初始化到一千了。不可重复读指的是两次一个数中两次读取到的数据不一致。首先这下面应该是有写代码,张读,算了自己写。
首先还是拿转账为案例,在这里面读数据,在这里面暂停一下,表示这边读的时间还比较长,叫韦特佛。韦特佛点累,让它暂停几秒钟,这里面让它暂停十秒钟。十秒钟以后又读一遍。
注意不可重复读指的是一次事物中两次读取到的数据是不一致的。现在是不是在这个事物中演示了两次?是不是读了两次?只不过中间暂停了十秒钟。为什么要暂停十秒?就是为了演示一下两次读取到的数据不一致的场景。
假设这里面中间的业务场景数据量比较大,读的时间比较长,读了十秒钟。十秒钟过后又读了一次,就这样的意思。暂停十秒钟平时肯定很少用,哪里会让人暂停十秒钟?人家都是追求速度快的,这里面只是为了演示不可重复读,所以暂停十秒钟。
然后我在这个地方,这个地方我也开启了一个失误,ab两个窗口我都开启了一个失误,然后看着,我在这里面考虑它一下,首先我先执行它,我先执行它,看了,我先开启这个数,它现在正在读,那十秒钟我赶紧先提交一下,ok,这边是不是提交了一下,然后这边十秒钟还没过,等一下,这里面它应该是两次,你看是不是一个事物中两次读写到的数据不一致,对不对?
按理说同一个事物中读取到的数据应该是要一致的,但是因为这里面是不可重复读,会产生这样的一个问题,对不对?你会产生不可重复读这样的一个问题,导致你两次读取到的数据不一致,明不明白?这个就是不可重复读。
那么为了解决不可重复读有没有办法?有,那么接下来就要干嘛?就要设置隔离级别,设置为可重复读,把它隔离级别再提升一下,好吧,然后现在我给它暂停一下。
标签: #不重复的sql语句