00:00
所以这块的东西啊,实际上理解的东西比较多。真正的语句就两个,有啥可写的对不对?哎,那接下来咱们就来看一看什么呢?关于关于什么呀,关于事物之间的什么。隔离性。事务。隔离性存在什么隔离级别?理论上啊,隔离级别包括四个理论上实际上。大家都是从二档起步。一档。现在的数据库一般都不是都不会这样啊。第一级别服。
01:03
未提交。RA。UN committed。读未提交啥意思?对方事务没有提交的数据我能读到。就说白了,我们我们两个教室就好像是一个教室一样,对方老师说完话我马上能听见,我说完之后他也马上能听见。就代表我们的隔离级别,怎么着特别的低,中间这道墙压根就没有,我们叫读什么未提交,就是对方事务还没有提交的数据我们能读到,这叫读未提交。这应该是两个T呀,还是一个T。
02:02
按英语英语来说就是committee以T结尾的两个T吧,第一级别啊,叫做读未提交的意思,我解释一下就是对方事务还没有什么提交。啊,我们当前事物。可以读取到。可以录取到对方未提交的数据叫读未提交。读,未提交。存在脏毒现象。这个脏毒呢,指的是dirty read。这是专业术语,各位啊,这,这不是我说的啊,读未提交存在脏毒现象,表示读到了脏数据。
03:11
脏的数据,这个数据极其不稳定,各位啊,他根本就没有在硬盘文件上。没提交呢,在缓存里边,是不是我这边的事物怎么着读到了,他要一回滚,我就读读到了这个数据相当不稳定,或者一断电,这个数据没了。我们认为这个数据是不稳定的啊,或者说我们叫脏数据,脏的数据现象叫脏毒现象,我们叫第一级别,第二级别,好,我问你理论上有第一级别,但是所有数据库我说都是二档起步。Oracle也好啊,MYSQ也好啊,他默认的格离级别就是从这个位置开始的,但是MYQ比这个更牛啊,MY的隔离级别是三档起步。
04:01
这一会讲三档啊,来看二档二,第二档这个隔离级别呢,要比第一档要稍微厚一点的啊,中间可能有一道玻璃啊,就这意思来第二级别叫毒提交。或者叫读以什么提交读已提交read什么呀?Committed就是对方事务提交之后的数据,我方可提,我方可以怎么着可以读取到对方提交之后的数据,我方可以读取到,那存在的问题是什么?读已提交存在的问题是。或者是。存在的现象是啊读已提交,存在的问题是什么呢?是。不可重复读。
05:07
不可重复读。这个不可重复读是什么意思啊?就是对方一提交我就读到新的,从早晨九点钟我来的时候,我这个do命令窗口里,我查的这个员工selecting fromp,我查的这张表,这张表里有十条记录。中间呢?我这个事务没结束,我到了窗口也没关,隔壁呢。把我这个史密斯给删了。删完之后呢,我这个事物一读,我发现我的数据里边少了一个史密斯。最初的时候,我读到14条记录,对方删完之后我读到13条,14和13不相等,听懂了吧?
06:00
这叫不可。什么重复读?没懂都没懂,他不可重复读啊,我说了,我早晨来九点钟到晚上到晚上九点,整个这个过程当中,我的这个DOS命令窗口也没关,我这个事务也没有结束。我九点钟读到的结果跟九点一刻跟十点钟,十点跟11点,每次读到的数据都不一样,这叫不可重复读取啊。我一会儿读到的是14条记录,一会儿读到的是十条,一会儿我读到是两条记录,叫不可重复读取啊。因为对方提交了呀,对方他一提交,我是不是这个级别叫读已提交啊,读已提交是对方提交之后的数据,我能读到啊,我不可重复读啊。是不是叫不可重复读,这个墙继续加厚第三级别,各位这道墙继续加厚到什么级别,就是对方提交之后我也读不到。
07:05
听我说啊,这道墙啊,是不断加厚的,最初没有这道墙的时候,就是对方啊,没提交的东西我都能读到。第二级别上升到什么?对方提交之后的数据我能读到。第三档这道墙更厚了,对方提交之后我也读不到。也就是说早晨九点钟来,我查询员工表E里边14条记录,到晚上九点,我这个DOS命令窗口没关,我读到的数据还是14条,这叫可重复读。就在我这个事物没有结束的时候,听清楚了吗?我这个事物没有结束的时候,我永远读到的是多少条?记录14条。所以第三隔离级别,它直接就叫什么可什么重复读。英语单词,叫repeat。我问大家问题,解决了什么问题?这种隔离级别解决了什么不可重复的问题?
08:21
老师,这个是不是就跟游戏的毒打差不多?能这么理解吗?这是刚才问的哪个问题,这是回滚是吧?也可以这么理解,可以这么理解,声音老是断断续续的就卡了呗,等于是。来,咱们继续啊。那这个第二级别它解决了什么,各位。
09:05
这种隔离级别解决了什么?解决了脏毒现象?对吧,脏毒现象没有了呀,但出现了什么问题呀。不可重复读啊。懂吗?不可重复读。不,这有些同学可能不太理解,这是怎么,是什么叫不可重复,他不可就是做不到,做不到就是说我这个事物从头到尾我查到的数据是一样的。就我不跟你说了吗?我那个早晨九点钟来的时候,我这个窗口打开了,我这个事物开启之后,我到晚上九点这个事物就没有结束。我九点钟的时候读到14条,九点一刻的时候读到15条,到十点钟的时候我读到20条数据,到了11点我读到的是两条记录,这是不是因为对方一直在修改,一直在操作,然后一直在提交,我读到的是不是都是最新的数据啊?我读到最新的数据,所以是不是这个数据就是不能够重复读取啊?
10:21
不能重复读取,不就是不可重复读吗?帮你提交。如果对方已经提。对对,可以这样理解对方什么,嗯,然。可以这样理解。可以这样理解。那不不是不是什么刷新机制,不是刷新机制。
11:00
我再说一下啊,一会儿我可以给你演示一下。咱们先把这个隔离级别说了,一会儿我给你打开俩窗口行不行,我给你演示一下隔离级别,我给你设置的高一点,我隔离级别给你设置的低一点,你看看这什么效果不就出来了吗?是不是就是现在呢?就是说你要知道的是读已提交,就是说我对方提交之后的数据我能读到来。最后呢,我现在不可重复读嘛,读每次读的数据是不一样的。啊,但是呢,可重复读,他这个隔离级别就是说。我如果设置成这种隔离级别。你提交之后的数据我读不到。我永远读的都是我开启事物的时候的数据。就是说我现在员工表有14个记录,你把员工14个全删了,你也提交了,我这读到的还是14个员工。
12:05
从早晨九点到晚上九点,这个事物只要没结束,窗口只要没关,我读到的永远都是14条,这叫可以重复读。但是我说一下。解决了这个存在什么问题?读取到的数据是幻想。读取到的数据是换一下各位。对方把14条记录也都全删了,我这读到的还是14个。这是个幻象,其实在数据库当中,他做了一个备份,读取到的数据是幻象,这是存在的问题啊。是。
13:02
第四级别。你说到上升到这种厚度,这道墙啊,上升到第四个级别之后,你觉得它会是什么样呢?就这这个说白了,这个是没提交,我就读到了,这个你得提交啊,你提交了我能读到,这个是提交了我都读到了,第四级别是啥意思,第四级别就干脆到了一种级别,什么级别?就是两个事物不能并发。排队。不是提交读不到啊。是这个事物在没有结束的时候,别的事物休想开启,进不来俩事物必须排队。想。这个起个名叫啥。
14:03
序列化,或者还有一个名字啊,叫串行化解决了。所有问题。不会是幻想,全是真实的啊,解决了所有问题,存在什么效率低,需要什么事务排队。好了,那这个呢,是关于咱们事物的隔离级别,各位啊,然后这块我可以先给大家写上啊,Oracle数据库默认的隔离级别是是无已提交my circle数据库默认的默认的隔离级别是。
15:06
可重复读。
我来说两句