00:00
那刚才也聊到了一个关于索引对吧,那现在呢,我们就来好好聊聊这个索引这个东西,那一开始也介绍了迪啊,通过索引机制提供高效的。那接下来问题就来,我是怎么来高效的啊,其实前面也简单讲过了啊,它具体是给定一个东西叫whodi key,诶whodi key对吧?一个key,那它是由什么组成呢?一个叫record key记录键对吧?Record就代表你数据的一条一条的记录,就叫record啊,Key啊,然后加上什么呢?分区路径。大家注意,这两个东西组起来叫d key,它与文件ID,那我们刚才聊到了文件ID是什么?一个文件组有一个唯一的文件ID啊,记住了,好,那也就呼d key跟文件ID建立的一个唯一的映射。这种映射关系第一次写入文件后保持不变,大家注意,第一次写入文件后保持不变,这句话什么意思?也就是说这就代表这个映射关系是固定的,是唯一的啊,就这个意思啊,所以呢,一个文件组包含了一批。
01:13
数据的所有版本记录啊,我这个前面也聊了,对吧?啊,有点拗口,但是我们具体解读就是什么呢?一个文件组里面有多个文件片,每一个文件片都是不同的,呃,就不同的版本对不对啊,所以这句话没问题吧?啊另外这个索引可以用来干嘛?用来区分消息是插入还是要更新是不是,如果你是我找得到。也就是说我我新来的这条数据啊,如果原先数据里边没有,那我就是要做insert嘛,那如果原先数据里面有了相同的key,那说明这条数据是要干嘛,是要更新嘛,啊就这个意思,那索引是不是啊就很重要了啊,所以就很重要。
02:01
那下面是官网给出的例子啊,这个索引有什么用啊?再进一步理解一下,目的为了消除不必要的读写,引入了索引,有了索引之后,更新的数据可以快速被定位到对应的fire group,因为我们前面也聊到了,就是它这个索引是不是who d key跟fire group那个文件ID的绑定。对吧?D key与firelu的绑定啊呃,那直接看图吧,白色的是基本文件,也就是pack,黄色是更新数据啊,啊,先别管什么pack规log了,反正就是这是现现有的数据啊,然后黄色是后面新过来的数据啊,可能是插入,可能是更新,对吧?那如果有了索引什么意思呢?我们一共有几个,123456788份这个更新的数据,每一个是25兆啊,那这个时候呢,比如说。你如果没有索引,大家想一想,比如说就看这个就好了,这个25兆的文件,我怎么知道我要往哪个地方去更新了,你是不是所有的地方都得干嘛,都得去扫描一遍。
03:07
是不是扫描一下,你这样全量扫描,扫描一下你的这些数据是该往哪里去写,去往哪里更新效率特别低,但是如果有了索引这25兆是不是就知道,诶,他要更新的东西在哪?诶就是这100兆。对吧,另外这是另外的25兆的更新数据,他是不是就知道它对应的啊数据在这100兆里面,我举个例子啊,这100兆里面有123,那这25兆里面就有一的更新,二的更新对吧?那这100兆是456,那这这黄色的这个里面是五要更新对吧?那你看嘛,他要更新的是五。他是不是找到无所在的基本文件就行了,他不用所有的基本文件都去扫一遍,能理解这意思吧,也就是说他知道他的目标在哪,这样的话,他我们的合并开销是多少啊啊,你看这边呢,是100加两个25,这个是不是一百五对吧,这是四个文件组嘛啊。
04:08
呃,那这样的话,我们。合起来是不是开销就是六百一百五乘以四嘛,对不对,这个很好理解对不对,这个是大家都知道你要的对象在哪里,对吧,目标很明确,那你就开销少好,另外一种没有缩印的时候,这是原先来四个基本文件啊,四个基本文件在这摆着啊,有400兆的数据,然后呢,有八次的更新,每一次25兆,那现在问题就来了,这25兆他知道要去找谁吗?他不知道吧,所以你这100兆的是不是要每一个基本文件,是不是都要跟所有的更新数据做一次匹配啊。对不对。那这个时候你看他开销是多少,每100兆就得跟这些25兆有八个,这边合起来是200对吧,他是不是要扫描200兆的数据,哎,然后把属于自己更新的部分摘过来。
05:09
所以它的一次开销是多少,100加200,他自己100嘛,所有的增呃更新是200嘛,加起来是不是300对吧?好,那下一个基本文件100兆的数据,它也一样,它是不是也要在这200兆里面找到属于自己的更新数据,它的开销是不是也是300兆,好,那这四个基本文件这么一下呢,它的开销是多少,1200兆,那你看这个差距是不是差了一倍啊。对吧,这个就是索引的好处啊,那你不会漫无目的,那如果用生活中的例子来讲,哎,就类似于你现在比如说已经三呃啊,就家里催着你结婚了啊,但你没对象,这个时候你很迷茫,我到底该找什么样的对象?对吧,或者说你有你有目标啊,你要求身高怎么样啊,身材怎么样,学历怎么样,外貌怎么样啊加呃。
06:09
工作怎么样啊,你有一堆要求对吧,但是你现在没有合适的对象,你自己茫茫人海如大海捞针啊,你也不知道别人怎么样,情况也不了解啊,这个时候你的呃,无谓的。无谓的那个那个时间会浪费很多,但是如果你通过一种专业的中介机构,那中介机构里面呃,把男女信息都已经录入系统了,他可以快速的帮你匹配,那这样是不是呃就少费你不少事儿啊,又有点像你去找房子租房子对吧,你自己有一堆要求,你漫无目的的找啊,很浪费时间,浪费精力。那如果你通过一些中介,那它里面已经对每个房源了如指掌,他可以按你的要求,可以快速的给你推荐是吧,是不是省时省力,但是费钱是吧,这就索引的作用是不是。
07:08
好,这是它的一个原理啊。
我来说两句