00:00
着什么急对吧?OK,那还有一个问题,数据什么时候删的。对吧,我们说了合并的时候吧,那除了合并的时候,还有一种情况下也会选数据。来,我们看一下。我们之前是不是看到过SC这种方式,有一个方式可以得到所有的数据啊,对吧,如果说这个数据删了是不是就肯定得不到了,删了得不到了吧?好,还有一个过程呢,其实它真正删数据发生在两个过程当中,一个是flash flash也会删出去,第二个就是我们所说的那个大合并,因为官方文档直接跟你说了小合并干什么不删对吧?啊,大合并就是合并成一个的时候会删数据,OK,那我们看一下分别是什么情况下,Flash会删什么数据啊,Comp会删什么数据啊,这个时候呢,我再创建一个什么,诶创建还是不行,对吧,我得干什么。把马提起来吧,你妈不提起来是不是还是不行啊?
01:05
好,提起来了,这边。七加之后我们就可科瑞了吧,啊科瑞的一个STO4对吧,刚才没创建成功的。Info,走。立马创建成功了吧,也must活了对吧,好,那接下来这个时候呢,我们做一个事。九四。Name。不要那个什么民主了。也不要和谐,还有谁呀?那就是没有那种特别跳的人吗?啊,谁阳是哎,我少写了一个什么幺。你看就特别跳,把那个的调教我吧,好放进来,那接下来我去再来一个什么。
02:08
啊,然后再干什么呢。什么仙呀,是这个吗?仙嘛。啊先好,那这个时候正常的他应该覆盖,那我就扫描这个表。是不是只会出现一个人,但是虽然这个数据我们刚说了,他并没有真正的去删掉吧,来看我可以用一个特殊的命令去扫描出来什么。所有的数据对吧。指向十对吧,走是不是两个人同时出来了呀,对吧,其实隐藏进去了,那这个时候我flash。那这个时候我查全量数据。
03:04
只剩下谁了呀?便宜了最大的那个版本吧,啊只剩下了最大版本,也就是说拉过程当中注意这个时候呢。是不是里边出现了一个文件,这个文件只有什么。先抑就是那个玉阳啊,他根本就没刷下去。对,根本就没刷下去。啊,根本就没刷下去,这个地方呢,是因为我在刷写的过程当中,是不是你两条数据互相覆盖的数据是在同一个内存啊,对吧,这个时候他对于同一个内存的数据会干什么,会删除,但是注意flash有数据删不掉。什么情况呢?先一也不叫先意了,再换一个人。仙女啊。
04:00
还有咸鱼吗?咸鱼是吧,啊咸鱼这个时候我就是刚才你们说了拉时候会删除数据吗?来。哎,啊,我怎么又做了这事三条,因为咸鱼被碰了两次,对吧,刚才我碰到一次,是不是这个时候咸鱼并没有被删除掉。那有同学在想了,你发一会删一会又不删,那到底什么时候删,到底什么时候不删。什么时候删,什么时候不删?不是按道理来说,这个时候我刷写下去之后。这个东西不应该没了吗?刷写的时候,因为他们俩是什么在不同的文件里边刷写的时候,他只管内存空间,它不会读到磁盘空间能听懂,那这个数据,也就是说我最后又又铺了一条数据吧。
05:05
优酷的一条数据,假如说我把这个数据再干什么?刷新一下,你再扫描还是第三条啊,因为现在是什么。三个不同的文件吧,好,那但是对于用户来说,是不是这个东西应该是过时的呀,对吧,什么时候会删掉呢。这个时候合并的时候啊,而且呢是major合并,因为major合并的时候是所有门件都干什么,加到到一块了,我再来一个数据。我随便啊,兔子。SU41002,我随便,因为我为了它达到四个数据啊,到了四个文件,所以说跟前面那个数据我不冲突了,OK吧,1002,然后for什么。那。然后还有呢,小小迷弟。为什么就是你们的词越来越奇怪了呢?小弟,好吧,然后拉干什么?
06:01
刷一下对吧,S94走,现在里面是不是四个文件啊,对吧,我们执行一个合并啊,这个时候你执行major或者说com都行,因为四个超过了三个了,对吧,OKS4走。还是同样道理,它应该会出现一个新的文件,但是呢,要等一会才会删掉吧,啊,但是这个时候你可以直接去干什么呢。扫全量数据了,那你告诉我结果应该是什么?注意啊,有同学在想,哎,这两分钟是不是可能所有数据就出来,再过两分钟又没有数据了,注意这个时候他是当相当于没用的数据了,等会被再删除的数据他不会扫他了啊,就相当于如果说真的出现刚才情况,那不很诡异吗?你刚刚出发合并的时候能查到,然后过了两分钟就查不到了,那用户不封了吗?对吧,所以他统一的就查不到,因为他扫描只扫描最新的那一个文件了,能听懂啊,那也就是说这个数据是什么样子。
07:04
只是小迷肯定有吧,因为他是是吧,如不一样,那这个里边呢,是不是应该是这个数据啊,嗯,哪个呀。这个吧,是48463的这个对吧,咸鱼,因为有两个咸鱼对吧,应该是48463的咸鱼。对吧,没问题吧,啊,合并的时候是不是把刚才我们这一个咸鱼和。协议给他干掉了呀,对吧,给他删掉了,好,那我们总结一下,他到底会在什么时候去删出去。这个是大合并超过四个之后,你做的是等于没有这个大合并,并一个了,叫大合并啊,大合并会删掉啊,OK,那这个里边呢,什么时候先问第一个问题,什么时候会触发数据的删除。
08:00
Flash或者comp,而且呢,括号叫major大合并吧,Major comp的时候就删除,因为人家官方文档告诉你了manner这种合并的时候不删除数据吧,啊不删除好这两个过程,那flash它删除的是什么数据?如果说你这个数据在同一个内存当中,我就知道。你过时了,或者说你被删除标记已经标记上了,对吧?啊,那就要被删掉啊,就被删掉,这是第一个第二个。他不能删的是跨越了多个文件的数据。它删不掉了啊,假如说第一个文件有张三,第二个你在flash从内存这是内存啊,Flash李四的时候,我明知道李四的时间戳比张三大,但是你在flash的时候,张三并不会被删掉,因为flash的时候仅仅是操作当前这个内存,不会去操作到磁盘里面的东西,所以等相当于他在flash的时候,你在刷写与四的时候,它看不到张三。
09:04
他连张三都看不到,他能删张三吗?不能吧,啊,这是flash啊,它会删数据,但删数据呢有一个局限性,就是它必须你带删的数据在同一个内存里边,它会删掉,对吧?好,第二个就是我们所说的compac。的合并的时候,因为com的,而且注意叫major major它是将多个文件合并成什么一个,那你所有的数据是不是在内存当中加载到内存当中,然后是不是大家都能看到啊,对吧,大家互相见了面了,互相见了面了,那也就是说你这个张三跟李四能见面。那你们俩一见面是不是能判断出来张三是过时的数据啊,他在rewri的时候重写回去的时候,是不是就把张三删掉了?就把张三干掉了吧,像刚才我们看到的是不是那个,呃,时间中小的那个咸鱼和鲜逸是不是就被删掉了呀,对吧?啊,因为他们俩在内存当中见了面了,见了面了就知道你这个数据需要被删吗?啊,需要被删是这个意思啊,这个要注意一下,就这个点啊,这个好,这个呢,我们分清楚了什么时候删,那接下来刚才我们做的都是覆盖嘛。
10:13
还有删除标记呢。对吧,啊删除标记呢,我铺的数据。Sto。然后我再来个100。什么?冒号。哎哟,这个东西确实有时候挺恶心的,一摸,那然后呢,再来一个。还有谁啊?咸鱼小迷弟都出来了。五五开啊,我没有听错啊,是说的五五开是吗?他现在聊了是吧,过来一条数据,然后呢,我们把它什么。
11:02
Delete掉啊,因为他凉了吗?凉了就不能放在里边了,是吧,就得删掉就得删掉好,那我再拉一下。啊,这个时候来注意我扫描全量数据,应该这个五五开还能看见吧,因为他的内存吗。是不五开在啊,还有一个什么标记对吧,标记了,那我这个时候flash,那大家想一下应该会是什么情况,谁没了。不开肯定没了,因为他凉了是吧,啊,他没了,但是这个标记呢。对吧,这个五五开我知道肯定没了,大家都知道,因为他第一第一种情况你肯定是不要的,而且呢,凉了对吧,啊凉了,那你呢,这个数据被标记删除了,而且呢,在同一个内存吧,刚才。同一个内存数据是不是会删除啊,但是问题是这个什么。标记会不会被删呢?
12:07
标记还在发现,那标记这个东西会不会删呢,就最终。现在两个文件对吧,一个是合并之后的一个文件,一个是新刷写的文件吧,我们再来几个数据。不疼。就是。啊,为了再来几个1006,我跟刚才那个五五开那个105不冲突,OK吧。还有谁啊,老爷?包吗?然后flash s4可以吧啊,我再来一个数据啊,就是为了出发四个啊四个呢,他他立马就能合并啊,立马合并,然后还有谁啊。卖的。
13:01
Flash好,现在是不是四个呀,对吧,我给他那在这个合并之前我先扫一下。是不是d delete的标记还在啊,这个是刚才说的,这个是两个不同的rie吧,所以他肯定在,那我这个时候去做什么。COM4啊,我们先确定一下这个删除标记最终他会不会删,对吧?啊,如果说这个时候不删他的,这说明这个删除标记永远不删,对吧?啊,如果说他这个时候删,那我们要分析一下他为什么flash的时候不删。是不是删除标记说明系统最终会给他删除掉吧,而且是在major的时候就去删的,他为什么flash的时候不删呢?能想明白这个问题吗?因为你flash的时候只是操作的内存数据。我把当前内存里边需要被删除的数据是不是删掉了,但是你在之前是不是有可能put的张三李四保姆呢?是不是有可能啊,我在这个删除标记我在刷写下去的时候,我能看到张三李四王姆吗?
14:15
是这个意思啊。我先put这个张三,把它flash下去,形成了一个文件,我铺了一个李四flash了一个,形成了一个文件,我flash一个什么王五,OK吧,好,接下来我又来了一个什么赵六,赵六,同时我在内存当中把它什么。删了flash的时候,我们发现只有敌对的标记下去交六是不是没了对吧,因为它的同一个内存,这个很好理解了啊,同一个内存它就没了,但是这个删除标记他现在改把它删掉吗。不能,因为如果说这个时候删掉的话,会发生什么诡异现象,就是当这个内存还在内存的时候,没有触发flash的时候,什么都看不见,一旦触发flash的时候,诶王五炸湿了。
15:05
是不王五出来了呀,这不很奇怪吗?所以在这个时候在刷写的时候,他并没有把DD的标记给他删除掉,因为他不知道还有没有数据被我这个DD的标记所作用吧。因为这个前面还有文件啊,对吧,因为你刷写的时候看不到前面的文件。啊,所以他在major comp的时候,是不是所有的数据都加载到一块,那保证你张三李四毛五绝对不会诈尸的,因为在我删除标记之前,是不是把张三李四王五这些文件里的数据都干什么。都删掉了吧,我再把标记删掉有问题吗?没有问题了吧?啊是这个意思,所以呢,标记它会删,但是他删标记的时机是在什么时候啊。Major合并的时候啊,他要把所有的数据放在一块的时候,能理解这个过程吗?那你想一个这个问题吗?就我刚才所说的扎实这个例子啊。周六。插入进来的时候。
16:00
刚刚插入兆六的时候,一查是不是兆六出来,这个没问题吧,我在删除,我这个按顺序操作的时间戳是用系统的,就是时间中默认的呢,刚三李四往五都是增加的,OK吧,好,删除标记一打上,我在查的时候,是不是所有数据都出不来,无论是张三李四王五招六都出不来吧,这没问题吧,OK的好,那接下来如果说刷写下去,你想一个问题。假设他把这个d delete的标记要删掉,那你再一查的时候。是不是王五出来了?对吧,那也就是说你在flash前后用户查到的结果不一样,这个对于用户来说。还有用户会用这个东西吗?不会就没有人用了吧,这个体验太差了吧,就是由于你flash的一个问题,而且你flash还是按照内存还是按照什么。什么文件,文件最后的编辑时间来了,那这个我怎么知道,你什么时候Fla有可能我刚插入哪些数据或者滴滴的,我等了一个小时,我刚查能查到,过了一个小时查。
17:04
数据不一样了,我什么都没做对吧,用户说关我什么事啊。对吧,所以说这个D的标记,它在flash的时候需要把它保留下来吧,啊,需要把它保留下来,一直保留到什么时候啊。Major的时候对吧,啊,保存到做全局合并的时候,因为做全局合并的时候,这些张三李四王五跟我这个DJ标记是不是能见面啊,那我在删除这个标记之前,我先把你这些待删除的数据干什么。先删了,再把删除标记删了,那这个时候标记删了,我再查的时候是不是还是什么东西都没有,这个时候不会出现问题了啊,所以呢,他这个删除标记,第一点你要知道删除标记呢,他会删,第二点你要知道它是在major com的时候去删,能理解这个事吧?啊,因为他这样做更合理一点啊,整个这个设计一个需求啊,更合理一点,还有一个问题,最后就是说,如果说涉及到多个版本的时候,它会保留最大的几个版本,对吧?假如说你建表的时候设置的是两个版本啊,设置了两个版本,那最终呢,他会去干什么?
18:10
假如说最终不会删除数据嘛,对吧,它会保留什么最大的两个版本能理解这个事吧,啊最大,因为我们当前最后只剩下每一个rie里边每一个列是不是只剩下一个数据啊,是因为我们的什么版本为一啊,如果你版本为二,那就会保留两个啊,保留两个啊是这个意思啊,这个呢,是我们所讲的真正删除数据的一个时机,两个过程,一个flash,一个。
我来说两句