00:00
好,那么接着的话呢,我们再来看一下这个第二个部分,诶第二部分的话呢,我们要讲的就是这个空闲空间,用户记录和最大最小记录,好那我们看一下这个第二部分,说第二部分呢,它是一个记录的部分,主要作用呢,就是存储记录的啊,像我们这个最大最小记录啊,用户记录啊,哎,主要是占我们这个业绩物的一个主要空间的,对吧?呃,那么先看一下我们这里边画的这样一个简图,呃,相当于呢,我们在最开始的时候呢,这个比如说最大最小记录啊,其实一开始没有数据的话呢,他们相当于也是不存在的,对吧?诶那我们一旦呢,存储了一条记录了,那其实最大记录是它,最小记录也是它,对吧?那么随着我们这个记录呢,越来越多,咱们的空闲空间呢,就越来越少,呃,少到极限呢,就是我们这个用户记录呢,把所有的空闲空间呢,就都记录满了。呃,因为咱们整个呢这块呢,是不是只有这个16KB对吧,除了我们这个,诶我们提到这个用户记录空闲空间和这些目录,它们大小是不确定的,其他的空间呢,都是确定的,你把那些确定的都减掉以后呢,剩下的空间就都给他们的,哎,那如果说你这个最后这个用户记录呢,都已经占满了空间,空间没有了。
01:02
再来记录的时候呢,我们就需要呢,先开辟一个页啊,就是这样的一个思路,行,那首先的话呢,我们来谈一谈,这个叫哎空闲空间啊,这个呢是比较简单的。那我们就按照咱们指定的这个行格式啊,行格式呢,这不我们下边要讲的这个问题嘛,行格式呢,你看有好多种对吧,按照你指定这个行格式呢,咱们把这个数据呢,存储到我们叫user record当中啊,一开始的时候呢,没有对吧,一开始没有的话呢,我们这个空间呢,就比较大啊,越来越多,那就这个这个空间空间呢就越来越少啊最后买的时候呢,申请申请页新的页啊,刚才说过了是吧,好,然后再看下一个。这块的话呢,我们提到叫用户记录,说用户记录的啊中的这些记录啊,是按照指定的这个行格式。啊,一条一条的摆在我们的user record的这个部分,相互之间构成了单列表,咱们要看一看这个第六章当中的这个句子,索引的话呢,你看这是我们衡量的,那这个刻画的是不是就一条一条的这个记录,不管你是目录项的记录,还是我们这个数据项的这个记录,这个是不是都是一条一条的这个记录,对吧,然后直接的构成的是不是一个单链表这样的一个特征啊。
02:07
啊,那要说诶这个单列表怎么能够体现出来呢,这个呢,咱们用户记录他就搞不定了啊,因为这个呢,是不是属于我们这一条记录当中。啊,某一个字段做的事儿啊,那你记录当中这个某个字段做的事儿,那就跟我们这个行格式是不是就有关系了呀。诶,对的啊,哎,那如果说呢,咱们要简单说一下这个用户记录的话呢,那其实说到这就完事了啊,就是放一条的记录的啊,是单列表的一个特征没了,但是你要说这个单列表是怎么形成的啊,那这块呢,我们就得是看谁呀,看咱们具体的叫记录头信息了。在这个记录头信息里边,记录了咱们刚才提到的这个单链表这样的一个字段。啊段诶用户的记录里边一条的记录是如何记录呢,就得看这儿了,好那所以说呢,咱们讲到这的时候呢,我就直接呢,就跳到这儿了啊,为了让大家能够知道我从这跳到哪儿了啊,我还用颜色呢标示出来了。
03:02
哎呀,怎么会有我这样的老师呢,是吧,这个自己意淫一下啊好,那接下来呢,咱们看一看这个叫记录头的这个信息啊,注意我现在呢,还没有说完这个第二部分呢啊,大家注意我呢,这时候必须要跳过来啊,不跳过来呢,咱们就说不清楚里边的细节,这个细节要不说的话呢,也不太容易呢,接着咱们去开下边的内容,所以我必须要跳过来。啊,这也是我整这一章的内容的时候花的时间多的地方,诶怎么去捋出一条线呢,让大家呢,从呃一点渐进式的增加你这个认知,而不是呢,中间有一些跳跃,对吧。好,那么我们就直接从这就跳到这儿了啊,注意看我现在已经跳到行格式里边的记录头信息了,一会儿我们再讲行格式的时候,我就不讲这个部分了。这个记录头信息的话呢,是有五个字节的啊,五个字节的,比如说我们现在呢,创建了一个表叫做配置DEMO,里边呢有123CC2C3这样的三个字段。啊三字段,然后呢,我们这个C呢是主键啊是主键,然后这呢,我用的这个字符集呢,叫啊阿克码,那这时候呢,就相当于我们要写个小A的话呢,一个字符,实际上底层是不是就用一个字节去存就行是吧,就是我们解释起来比较方便一些,所以呢,我就写成二码啊然后这个哎行格式的话呢,我就用的这个comp派D啊这是我们说比较经典的一种行格式啊叫comp派D行,然后的话呢,我们一条记录啊完整的来说的话呢,是有这么多项的。
04:24
是有这么多项的啊,你比如说我们刚才提到是不是有这个C1列,C2列,C3列,其实除了我们自己写的这个表中的三个字段之外呢,还涉及到一些隐藏列。啊,这个隐藏页的话呢,咱们放到这个comp派行格式的时候,咱们到时候再说啊,诶咱们先主要呢来谈这个除了真实数据之外的这个额外的信息当中的记录头信息。啊,说的你看都有点绕啊,那这个记录头信息,你看咱们讲行格式的话呢,是不是第一部分叫变长字段长度列表啊,你先不用管这是干嘛的啊,你先注意呃,知道我们整体这个这个这个节奏就行啊,这个呢说是它,然后第二的话叫not列表,是不是就这个,第三个呢叫记录投信息,是不是就这个,然后这个真实的这个记录数据数不是据下边这块,好我们现在讲的是记录头信息。
05:12
这个记录条信息呢,我们拿着放大镜一看它,哎哟,这哥们又打成了好多段这么长五个字节是吧,那么这么长里边呢,有这个预留位一预留位二啊这哥俩,然后后边呢,有123456,哎是不是这块我们有六个字段吧,行,那这块呢,预留位这个呢,就是空余出来的,咱们就把它呢,就省略掉了啊就不管了。啊,这块就是没有使用是吧,哎不管了,然后剩下这几个呢,我们是接下来要讲的,你看123456,哎是不是就正好是这六个。哎,没有问题,好,那我们把上面这图呢,咱们简化一下啊,把这预留位呢给它干掉了,干掉以后呢,这不就123456是吧,就这六个事儿,好然后呢,我们把这个表中呢,添加了1234,注意我这块呢添加了四条记录啊,咱们后边呢,整个讲解呢,我都基于这四条记录来说。
06:04
我添加了四条记录,那么这四条记录的话呢,我就把它列出来了。呃,真实的数据啊,我这里边把那个隐藏列呢就给略掉了,只放了我们真实的这个C1C2C3啊1234,绿色部分呢,就是咱们添加的这个字段的信息,前面这块的话呢,把没有用的我们就不管了,像这个变长字段,这个长度列表啊,Not列表不管了,咱们只是列出来蓝色的就是记录头信息里边的六个字段。哎,这我列出来这样一个信息,那这个信息的话呢,嗯,这么着啊,咱们说明一下,就是在真实的内存当中啊,这第一条记录跟第二条记录他们是紧密排列的啊,我这呢是为了方便呢,就画了一些空空间啊,这是其一其二的话呢,就这里边咱们写的这个数啊。啊,其实呢,我这是为了方便大家理解,我写成了十进制,那底层真正存储的时候呢,肯定不是十进制的,对吧?啊,这二进制的方式来存,那你要是我们打印来看的话呢,通常显示的都是这个16进制的方式了啊哎,这个呢,我画成十进制是为了方便咱们这个,呃,这个人是吧,还去理解啊,因为咱们太擅长用十进制了。
07:05
好,那我这块呢,就把这哥们呢,咱们盯一下啊,方便呢去刻画啊,好就放在这儿下面呢,咱们看一看,这个叫记录头信息里边的这个情况,首先啊,咱们来看这个第一个叫做desk mask。啊呃,所说的了delete啊,Mask啊,Delete mask这是什么作用呢?说这个属性啊,它是用来标记咱们当前这个记录啊,是否被删除了。诶是否被删除了,它是一个二进制位,就是一个bit就可以了,零呢就表示没有删除,一呢表示被删除了,诶大家可能会有点困惑,诶说呢,我们这里边有四条记录,要是我们把比如说第二条记录删掉的话呢,诶他就是只是把这个改成了一个一。换个红色啊。呃,重来,诶我们只是呢,把这个改成了个一,诶为什么不真实的把这条记录给删掉呢?大家知道为什么吗?啊,你可以把你的理解呢,打到这个公屏上啊,为什么不把它删掉呢?呃,因为啊,刚才我其实已经这个提前呢,给大家把这个点呢说出来了,在真实的这个,呃,底层存储的时候呢,我们第一条记录它的后面呢,紧跟着就放我们这个第二条记录了,紧跟着就放我们第三条记录了,依次往后推,你想想如果我们真的把第二条记录给干掉了,他还是依次紧密排列的,你是不是就意味着我们第三条记录紧跟着得盯过来啊,你得往前移。
08:28
那接着再往前移,你想想我们这个呢,呃,是不是这个这个非常消耗这个性能啊。啊,那怎么办呢?诶,我们真实的做法啊,就是你想象的做法,可能并不是我们真实的这个做法,真实的做法如果我们把这个第二条记录删掉呢,就是只是把这个零改成个一就可以了。哎,就可以了。好,那么呃,我们改完以后啊,这块还提到个点,就是如果说我们删除的这个记录比较多的话,诶,这个得其实咱提前预知个知识点,就后边有这个像next record啊,诶比如我们有好多条记录都给删掉了,他们都改成11了,诶但是他们彼此之间呢,其实不一定是连续的,对吧,那我们就通过这个next方式呢,诶让他们就连起来。
09:09
连起来相当于是不是构成了一个叫垃圾链表啊,因为他们都是垃圾嘛啊,那垃圾列表构成以后,那我们要把它们可以称为呢,叫可重用的一个空间啊,那我们后续来了数据以后呢,实际上呢,就可以比如说我们真实要放一条数据在这个位置的话呢,咱们只需要呢,对这条数据完全进行覆盖啊就可以了。啊,这是我们这样一个特征,OK啊,限知道我们这个最大的事儿啊,其他这个事儿呢,我们一会儿还有其他地方会讲到的啊,我们到时候呢,再来一个首尾呼应。这个呢叫做delete,诶mask,然后下边这个呢叫mean啊,Record,这个mask啊,这个呢,大家可能有点迷糊啊,说这个毕加数啊,回归到咱们脑海当中啊,这样的一个图啊,这块说这个B加数中每层非啊叶子节点中的这个最小记录都会添加该标记啊,它这个值呢是一。
10:00
啊,我们自己插入的四条记录的这个min,呃,这个record ma那个值都是零,意味着它们都不是B加数的非叶子节点中的最小记录。啊,说完这句话还有点儿喘是吧?都不是我们非叶子节点当中这个最小记录这个事儿的话呢,其实在我们讲这个第就上一章的时候呢,咱们稍微提到过这个点啊,CTRLC一下,只不过当时提到的时候呢,我说咱们下一章的时候呢,到到时候再说一下啊,比如CTRLFCTRLV粘过来。诶,我们是在这块说的啊,在这块说的这块,我们提到说这个目录项跟咱们普通的用户记录的这个不同点有什么?诶那不同点呢,提到过这个时候呢,它是叫record type不一样是吧?诶还有一点不一样呢,就是诶我们记录头信息里边,咱们现在不是讲的就是记录头信息嘛,有一个这张属性只有在存储目录项记录,哎目录项记录这个页中的这个主键值最小的目录项记录里边,这个值是一啊,其他值都是零。哎,你知道这个点啊,就可以了。啊,那我们这儿呢,全是零啊,就意味着他们就不是非叶的节点中的最小的这个记录了,啊好,这就过了。
11:07
下边这个呢,我们叫record tap啊record tap记录类型吧,哎,这个记录类型咱们在讲这个,哎这一章的时候,这不是提到过吗?哎,这个值呢,是不是有零啊,有一啊有二有三是吧?哎,这样的几个值啊,回过来说一下,零呢表示就是普通记录啊,一呢表示你是非叶子节点这个记录是吧?二呢就是最小记录,三是最大记录。那这个就没啥多说的了吧,哎,能明白是吧?哎,这个就我们对应的是这个record type,我们这写的都是零表示的都是普通记录啊普通记录行,然后呢,再往下说,哎,咱们再往下走这块呢叫he。Number number。N5了啊嗯,Hi number呢,它这个属性呢,表示当前记录啊,在本页当中的一个位置。啊,在本页中的一个位置,来大家看我们这这个he number呢是多少。2345是吧?哎,2345,诶,大家可能就有点儿疑惑了,说我们这儿明明只有四条记录,怎么上来呢?在页中的位置上来就来一个二呢,好歹你不得从一开始嘛。
12:13
对吧,哎,那其实的话呢,我们还是遵循这个最小的值呢,是从零开始的,所以其实呢,缺俩是吧,缺个零是不是缺个一啊,然后再2345,那那这时候我们一问就来,那叫零和一是谁呢。对吧,哎,001怎么不见了呢?哎,这块呢,我们又说来话长啊,诶注意听啊注意听说MYS啊会自动的给每个页里增加两个记录。啊,由于这两个记录呢,不是我们自己插入的,所以呢,咱们通常也称为呢叫伪记录或者叫虚拟记录,这两个记录一个呢代表着呃,我们当前这个页当中的最小记录啊,另外一个呢,代表我们当前页中的这个最大记录啊,一个最小,一个最大啊那么它们俩的值呢,一个是零就是最小记录,一个是一,表示呢,这是最大记录啊,因为他们是最靠前的嘛,所以我们就把零跟一呢就给了这哥俩了。
13:04
啊,是这么个道理啊,那相当于呢,大家回过来,我们在这个提前上一张预知的知识里边,诶,这是不是最小记录,这叫最大记录,相当于给他分配的这个黑number叫零,这个呢给他叫一,然后这个呢是2345是吧,诶就相当于是这样的特征啊,这也是一样啊,Number的角度来看就是零一然234,诶就这个道理。好,那么说到这儿了的话呢,咱们就怎么着啊,不得不再去找这个相同颜色的,大家看,哎,找相同颜色的是不是就找到这儿了,咱们又回归到注意啊,此时咱们这个user record我还没讲,哎,User,呃,不是record,我们这个记录头信息呢,我还没讲完呢。没讲完呢,这块咱们必须呢再跳脱过来了,因为咱们这块遇到了一个是不是最小最大记录啊,来跑跑过来了,注意这块我们又切换过来了。哎,注意看。这时候呢,我们来谈一谈刚才你提到的这个最小和最大记录,分别呢,叫呃,In啊,Inform和这个呃,Supreme是吧?一个呢叫下学界,一个呢叫上学界,这其实是数学当中的两个概念,对应在我们这儿呢,就是页当中的最小和最大的记录。
14:13
啊,首先抛一个问题,说我们这个记录啊,有必要去比较大小吗?啊,有必要去记录大小吗?诶我们说当然有必要啦,你看我们在这个B加数当中,不管呢,你是这个叫诶目录项这个构成的页,还是我们这个,呃,真正这个数据页咱们,诶如果是一个句子索引的话呢,这个叶子节点是不是就按照我们主键来排序的呀?诶这块呢,也同样道理是吧?诶所以呢,我们是有必要去对他们进行排序的,那只要排序的话呢,这就涉及到一个大小的问题了。啊,那我们要是一个句子索引,咱们就是按照主键是不是大小来排的嘛,啊咱们添加的数据啊,刚才咱们数据在哪添加的,是不是在这添加的,哎,我们这个,呃,第一列C1列呢,是不是就我们主键呀,呃1234啊这就是这四个值啊这四个值。好,再回过来啊,这就我们这四个值啊,OK,那么接着往下去说,那我们in DB啊,它就规定咱们呢,呃,你添加这个记录啊,我们去记录一下你的最小记录啊,再记录一下你的这个最大记录啊,那这呢,我们就用这个啊,就是我们这个页里边呢,专门有一个部分啊,去七个部分之一啊,去表示这个事儿。
15:17
那么最小记录的话呢,它是由,呃,这个最小记录跟最大记录一样啊,一共呢,是由13个字节构成的。啊,13个字节构成的,前五个字节的话呢,是来,呃,表示这个叫记录头的信息,那记录头本身呢,是不是就占五个字节啊。没问题,然后后八个字节呢,呃,它是一个固定的写法,这个这个固定写法翻译过来呢,就是我们这个单词啊inform,然后这个,呃,这八个字节呢,翻译过来就是我们这个就是我们这个上下上学界是吧,最大值的意思。然后前边这块呢,就是记录我们这个最小记录的记录头,这是最大记录的记录头,OK,诶这不是我们自定义的是吧,所以呢,不能存放在我们这叫U4RA当中啊,咱们就专门的是用这样的一个结构来来表达,好这呢我就把它呢,诶放出来了,咱们呢,是不是有1234,咱们添加了这四条记录,诶是不是对应的还有两个,一个叫最小,一个叫最大,然后他哥俩当中最小的这个呢,He number呢,你看它是零,然后这个呢,诶它是一,然后接着呢,我们这就2345了。
16:19
诶OK是吧,诶二三四五行,那这样的话呢,咱们就说清楚了这个事儿啊,这就关于这个number呢,咱们就来解释清楚了,然后再回过去,咱们接着往下去说。我接着往下走,接着往下呢,我们是不是该他了?啊,这叫n own,这个n own的话呢,干什么呢?哎,这块呢,又提到一个新的概念,叫做year目录,说year目录当中,每个组中最后一条记录的头信息中会存储该组一共多少条记录作为O的这个字段值。哎,我念完之后呢,我都有点缺氧啊,大家呢,脑子是不是也是有点懵是吧?突然感觉呢,左边是水,右边是面,然后晃一下呢,就是浆糊的感觉啊,嗯,这个不禁感慨啊,说设计这个底层结构的这个人呢,果真不一般是吧?哎,我们看起来感觉都有点儿费劲,更何况设计了啊,他设计的要更完美一些。
17:09
哎,不能有漏洞是吧,不能有缺陷啊,不能有冗余啊这样。好,那这个呢,N-on的话呢,简单来说啊,就是咱们这个,诶后边要讲的这叫配置directory,我们这个页目录啊,实际上是要分组的,然后每一组当中的这个,呃,组的这个元素的个数啊,我们需要呢,在这个N-O的当中啊去做记录。啊,虽然说我又给大家翻译一下,大家肯定还是听不懂是吧,听不懂的话呢,我们就先过掉它,一会儿我们讲到这个配置direct的时候呢,咱们再说啊,这个你可以先放过自己啊,诶咱们这个先预留一个这样的一个问号,好,那接着再往下说。这个呢叫做next record,哎,这个咱们就熟悉了啊,Next record是不是就指向我们下一条记录,诶其实就是咱们那会儿呢,想给大家去强调的是不是这个单链表这个事儿啊,哎,OK,来咱们就说它。
18:00
这个呃,记录头信息里边,呃,这个属性呢,非常重要啊,它就是实现我们这个记录跟记录之间的一个啊连接的这样的功能,它这块呢,记录的注意是地址的偏移量啊,大家你看我们这四条记录当中,Next课堂看这几个呢,是不是都是32 32 32啊,诶有同学可能一看懵了,说诶这个是不是32指向具体的某一条记录啊,是不是某一条记录的地址呢?诶怎么某一条记录地址他们都指向了同一个地址呢?注意不是这个意思,这个32呢,它是偏移量的意思,也就是说呢,我们这个呢,接着往下呢,找32个字节,你就找到了我们下一条记录了,其实就是我们第二条记录,然后第二条记录呢,你再往后找32字节呢,就找到我们第三条记录啊就是这样一个顺序。所以说呢,你看到这个值呢,它都是一样的,都是32对吧,哎,就都是32了,好嗯,这个呢就说清楚了,然后的话呢,咱们再来说一下,就是这个最小记录呢,它不是前面这块也是一个。也是一个记录头嘛,是吧,所以说人家这个字段呢,也都有。
19:03
所以说呢,我们整个看到的就是最小记录呢,它的这个next record指向的就是我们这个真正的用户记录里边的第一条记录啊,其实也就是我们所谓最小的,因为这条是一个升序嘛,对吧,然后呢,这个第一条记录呢,指向第二条,第二条指向第三条,三指四,然后四的这一条的next呢,指向我们这个最大的记录。指向它,哎,那么我们之前的话呢,是不是也已经预知了这样个知识点,那就跟我们这儿呢,你看是不是一致的呀。哎,你看没有问题是吧,哎,就这样一个效果,OK,就相当于我们把这个知识呢,这不就都串到一起了嘛,好,那么这种场景呢,大家就清楚了,清楚以后呢,我们在接着呢,给大家说两个点,就是我们在这个当前的这种场景下啊,这不是基本上我们把这几个字段是不是都解释清楚了,虽然说我们这呢,还欠一个这个N-on的一个清楚的解释,是吧,一会儿我们再讲这个,呃,这个页目录的时候,我们再再去谈一下它。好,那么这个基于这个next record,我们现在谈一谈关于记录的一个删除操作。
20:02
比如说我们现在呢,把咱们这个当前四条记录当中,C是二的这一条记录呢,我把它删掉了,那这个删掉行为意味着什么呢。啊,大家看我这个图。哎,这呢是我们刚才已经谈到的这个指针的指向了,这没问题,如果我们把这条记录删除了,我会有这样的几个位置呢,会做一个修改,比如说首先我们第二条记录呢,因为你被删除了,所以你的delete mask呢,哎,这个就改成一了,表示你已经被删了。咱们前面说了,没有真正的把它干掉,对吧?诶把它标志成一,其次的话呢,我们原来的第一条记录指向第二条记录,现在你就不指二了,是不是第一条记录直接指向我们的第三条记录啊。哎,这是一个改变,那么你第二条记录你的next record呢?不好意思啊,现在就你自己被删了,你现在呢,是零啥也没有是吧?哎,就是默认值了。好,然后还有一个位置的改变,就是这个N-N的啊,这个值呢,原来是五啊,现在呢,我们改成四了。啊,这个大家呢,可能会迷糊,我先说一下是什么意思,我们这个在呃建这个就是N杠二呢,就是跟我们这个页目录相关的啊,就是咱们一会儿要讲的这个啊,咱不是还没讲吗。
21:08
是吧,咱不是讲到这还没讲这儿了是吧?哎,就是跟这个页目录相关的这个,呃,页目录里边呢,我们会对整个这个页当中这个数据啊,诶这个他调过来对我们这个业中的数据啊,会进行一个分组,诶我们直接说结论啊,就是咱们当前这个场景的话呢,一共分成了两组啊,他自己是一组,然后呢,诶这四个加上我们这个啊,就这五个呢,他们是一组。啊,那这个是一组,这里边有几个是不是就一个呀,我们这样是一组的话呢,四个加一个是不是就五个呀?诶所以这五个是一组,这五个是一组的话呢,我们会在这个最大的这个哎位置的话呢,去记录一下我们这个组的个数,那最大不就是它指它,它是它最后这个指向的不是它嘛,所以它就是最大的,哎,它这个就是五了,那你这块删掉一个是不是它就变成四了。啊,那为什么是这样分组,这个咱们到时候再说啊,你先先给你说这个五是什么意思,先解释一下。画这不就变成四了嘛,这个呢,就是咱们这样的一个删除的一个行为啊,那从这个删除行为中我们能看到,无论怎么对页中的记录做增删改,操作度DB呢,始终维护着一条单列表,对吧,然后按照我们这个主键从小到大的顺序呢去排列的。
22:12
啊,这个应该大家没有任何意义,好接着我们在删除的基础之上呢,咱们又做了一个诶添加,这时候添加的话呢,我又把这个第二条记录呢,原封不动的这个删除的这个数据啊,我又给他添回来了。哎,其实主要呢,呃,也不一定非得说要绝对的原封不同,主要呢,就是我们想让这个C1的这个值是二啊,因为呢,咱们添加这个记录的时候呢,咱们不是按照你添加的顺序去往后放的,是不是严格按照我们这个主键的,诶在你这个当前这个缩引当中是吧,按照我们这个主键的一个升序排列,所以我们这条记录是不是就应该放在这儿了,哎,是这个道理,你要这块改成300了,那就在这块改,改成300就完了呗,对原有这个记录呢,覆盖一下就行是吧,OK。好,那么这里边的话呢,我们把这条记录上又给加回来了,那么加回来以后的话呢,我们做的一些变化是什么呢?首先的话呢,这个从零一是不是改成零表示呢,我们现在又回来了是吧?这个呢是表中有这条记录的改成零,然后的话呢,这个next record呢,就从一指向二了啊,一指向二,然后呢,我们这个呃,二的话呢,再指向三,诶所以呢,他俩的这个next record这块呢,还都做了一个更改,其次的话呢,还是你这五个呢,是一部分啊,原来不是删掉的时候变成四个了,现在又加回来,是不是这个从四又改成五。
23:28
啊就行是吧,哎这样一个特征。好啊,这呢就是我们说的这样一个情况,那那如果说呢,咱们这个表中呢,有多条记录被删除了啊,应该说当前这个页中吧,啊,比如这是一条啊,这是一条后边呢,我们这可能还有很多条都在这个页当中,那么这些被删除的这个记录记录呢,他们这个next record他们自己呢会构成一个链表。啊,那被以备呢,我们后边呢去重用啊,是这样的一个特征。好,那这样的话,能把这个叫next record这个呢就说清楚了,那这呢,相当于咱们把这个记录头信息啊,是不是就解释清楚了,顺便呢,我们相当于是不是还把这两个是不是也说了,OK啊,咱们这呢先告一段落。
我来说两句