00:00
好,我要给大家讲一个什么事情呢?来看一下,我先把表创建回来,Great。Student。然后in还是in走。可以OK,然后呢,我们还是破几条数据。他们没有数据,不好演示。真哪真?然后。你这样吧,把这几条数据全部拿回来。1001的一个性别,男,然后1001。18岁是吧。然后再来一个。听见没?等一下OK,然后再来一条数据。Come。刚才我们知道我们在铺的数据的时候,是不是后面可以跟时间抽啊,对吧?OK,那我们先扫描一下这张表。当前我们是不是没有加时间说,所以说这个时间戳是。
01:04
系统自己的对吧,哎,自己的它是采取了本地的一个时间,OK,那接下来我该用什么事呢?删除操作,删除操作我删除什么呢。然后那个student逗号。然后我把这个A删了。应该还有一个rookie对吧,在这。1001啊,我们要删除1001的一个A,走,这个是可以删除正方框盖A没了,A置没了,好你要注意的一个点,此时我该用什么操作呢?刚才我们不是putage吗?来,我把这个put操作给他。回来在这吧。那如果我不加时间抽的话,它就是以当前时间抽了,我现在给他提供一个时间抽看一下。我提供什么时间充呢,这个A是我们当时。
02:00
第一次插入这个A的时间戳,是不是我用这个时间戳传进去。那跟这个删除操作之对比,这个时间戳跟删除是不是在删除之前对吧,在删除之前OK。显示也没有报错吧。18那条数据呢,没了没了,所以说这个东西删除操作。咱们没有加什么时间戳,是不是它默认的传的也是。当前的时间看一下这个delete。他在删除操作的时候。都有一个时间戳吧,你没传就是当前的一个时间戳,当前的一个时间戳,那这个指的是什么意思呢?我们之前说过在B当中啊,无论说什么。删除改数据也好,是不是打标记啊。对吧,打标记,那这块你删除操作加了一个时间进去之后,它是把这个当前这个时间多之前的所有数据都打上了一个什么删除标记。
03:11
删除标记。能什么意思吗?就是说假如说咱们是现在是三个版本啊,里边不存了三个版本吗?啊,你put了三次啊,你get呢,你指定版本号,三个版本号呢,它也能获取到啊这都我们都措试过了,对吧?那此时如果说你在这个时间戳这个整个是一个时间轴往前走的,那你在这个地方你执行了一个比delete的操作。执行GP的操作删除,它是将你这后面只要在这个时间轴前面,它都打上了一个。删除的一个标记,那此时他去在插入数据的时候,他也会拿着这个标记啊,就这个地方不是已经打了一个什么标记啊,DB的标记了吧,他会拿着你当前传进来的这个时间啊。数据的一个时间不有时间戳嘛,它会跟这个对比。跟这对比,如果他比他小的话,他认为这个数据呢,也是被也是该被删掉的,所以说就是刚才我们看到的这种情况,我传的时间戳晚于什么,不是早于删除的那个时间,说对不对啊,所以他看不到,所以他看不到啊,整个的操作过程是这样的。
04:16
整个操作过程是这样的,他会将所有的,而且如果是多版本的话,它会将所有的版本,只要是时间戳。小于delete的时候的时间戳啊,那个版本全部删掉,统统删掉啊,它完全的按照时间戳来的,所以说时间戳这个东西在H倍当中非常重要,所以你就能感觉到为什么在启动的时候,时间能差个几十秒之后它就不让你起了。因为整个的它是由时间戳来控制的,那你想想看,你这个102是可以开什么下操作的,对吧,那103104同样的它能开这个窗口吗。都能吧,啊,它都是一个服务,它也是可以的,那如果说他允许你之间差的时间太长的话,你102都执行了d delete的操作了,但是103呢,它这个时间。
05:05
晚于还没到102这个时间对吧,你在这边库的数据有用吗?或者没用吧,所以说他对于这个时间的一个要求啊,是相当严格的,相当严格的啊,那有的同学说那这个不太好啊,就说我存我该存三个版数据对吧,那你一删把我所有版本数据都删了。那你要注意在shell操作当中啊,它其实简化了,它其实简化了就是什么意思呢?在shell操作当中,你只要执行激励的,它是删除所有版本,但是呢,你可以通过API更细力度的控制。那什么意思呢?就说你可以一个版本一个版本闪,就一个版本一个版本打标记啊,到时候我们API操作的时候能看到这两个对比,只不过shell操作它当中的这个D立的这个命令呢,它调用的是API当中删除所有版本的,所有版本的那个API,这样理解啊,这样理解。啊,还有一个核心的点就是能感觉到,如果说调用了删除所有版本的API,它是不是在这个时间段,当前时间段上打了一个标签啊,只要小于这个时间戳的,我通通都删掉,通通都删掉,哪怕是你插入的时间插插入这个操作的时间在我删除操作之后啊,我还是看你这个整个什么当前这个数据它的个时间抽的是这样的啊,当当时数数据的一个时间说的啊,这个要注意这个点是要操作当中。
我来说两句