00:00
来,同学们,我们继续,那么前面给大家介绍了activity MQ持久化机制,那么介绍了两种,一个叫MQ,一个叫可看DB,那由于可看DB是当前默认的,所以说我们需要对它做详细深入的讲解哈。那么。其实这么讲最重要的是这个和这个,那为什么呢?因为这个。它是一种什么希望作为下一代的存储引擎,存储的持久化机制啊,目前它还这个level DB还没有引入,那么我们后面会详细讲到它详细说,但是现在我们这节课就干一件事,因为截止到当前5.15.9这个版本,我们的默认的存储机制啊,不是我们胡说八道对吧。官网上说了还是可汗DB,那么所以说我们面试中以及在日常工作中要对底层原理有一个门清,那么这节课就要给大家说一下是吗?可看DB的存储原理,好,那么同学们。
01:04
根据前面我们所所所讲可看DB我们刚才也已经看到了,一打开了以后大家看。当前路径下面,我一打开以后,它下面刚刚开始有几个1234,那么所谓的active MQ的持久化机制啊,默认的可看DB1打开它会有四个文件,其实应该还有一个哈,由于我机器昨天关过机,重启过以后,那么那个文件没出来,待会儿我们会说我会给大家一个。全局的参考,但是现在主要的你看我们刚刚开机了以后,是不是就这三个DB杠一,那么这个12345会不会有其他数字,有一的话。点look哈,点data.redo和lock,那么它们组成了可看DP文件夹下面的四大文件,你看全是文件嘛,那么。
02:03
其实应该有五个哈,待会我们会说,那么杨哥它分别是些什么,怎么跟可汉DB配合起来使用好,那么我们来看看可汗TB的存储机制啊,那么详细呢,给大家呢进行一下深入的讲解。OK,那么可汗TB的属性和配置那么有这么这么多恐怖吧?那言下之意是什么呢?你看他的意思就是说官网上你给我就配可汗DB目录,就这么一个参数,那么你呢?可以查我这张参数表。你看官网上是不是就只配了一个director目录?那么如果现在可按DB作为默认存储引擎,你可以派其他的属性TV建制对的去配,以达到最佳的性能和效果。那么。这个时候它的配置和参数如下,那么接下来我们来讲讲它的存储原理和说明。首先先说说明科安DB是目前默认的存储方式啊,那么用于任何场合使它默认的提高了性能和恢复能力消息这种可看TB的消息存储机制主要是使用一个事物的日志。
03:09
和仅仅用一个索引文件来存储它所有的地址,那换句话说。它呢主要呢,把数据存到一个data log当中,当不再需要这个log文件的时候,这个log就会被丢弃,这个所谓的丢弃说穿了就是两种操作,一个叫删除,一个叫归档。好,那么接下来请看同学们,可汗DB进来以后,你看杨哥做实验的时候,它有几个文件,12345个听懂,还有一个东东叫什么福瑞。由于我们现在数据清了以后不那么多了,干净了以后,暂时那个福瑞没出来,那么所以说重要的是这三个那么好杨哥这些分别是什么,它的机制是什么呢?那么从这这句话你可以看得出,他用一个事物日志和一个索引文件说难听点。
04:03
就是新华字典这个事务日志啊,你可以把它理解为正文这个索引文件,可以把它理解为新华字典的目录,你要找什么东西干嘛,就按照目录的索引去找到我们的正文日志,好,那么接下来来看看它的存储原理。首先,可汗DB在消息保证中。只有四类文件和一个lock。那么分别。陈述如下,分别是红色框框这四个和四加一,你就给我记着这个,可看DB的这个路径下面四加一,那么它呢,一个个来,第一个叫DB减号number.log,那么存储的消息到预定义大小的数据记录文件当中,那么什么叫预定义大小?比方说这个日志文件,我们默认每一个都是32兆,因为我们讲过可看DB的前身是不是叫MQ,那么那个时候它的一个日志文件一个大小就是32兆作为一个块。
05:02
超过这个,我们另起一个,那么文件命名为DB减号数字number,当数据文件已满的时候,一个新的文件会随之创建,也就是说。可以有一,可以有二,可以有三,这么说能理解。Number数值也会随之递增,一号,二号,三号,四号,那么如果说一美32兆就是一个文件,文件名按照数字进行编号,如这些当不再引用到的时候,文件就会被删除或者是归档,那么它有个自我空间清理的这么一个机制啊,那么来第一个,也就说难听点,我们那些数据你可以把它理解为就。以这种日志的形式啊,记录在可看DB的路径下面这些文件,这那么它是怎么干的呢?这个是可看DB的director目录路径,它有。两种机制啊,一个叫当前使用,一个叫归档,那么假设一号满了,二号,二号满了,三号一二三都不再用了,归档删除或者是就留在这儿,那么现在用的是四和五或者是。
06:08
别的那么四和五,那么大家看还有DB data DB redo DB瑞好,那么这个又是什么呢?那么。再来。DB data,该文件包含了持久化的B数的什么索引,所以说能理解前面这句话了吗?使用一个事务日志和仅仅使用的索引文件来存储它的所有地址,OK,那么最重要的就是这两个,一个是DB带井井号number的这个log,第二个是DB date,它是一个B数索引哈,那么这个B数索引杨哥在买赛克高级那详细讲过,基本上不管是大数据班的同学还是Java班的同学。MYSQL数据库要问数据库,一言不合100%的问你索引原理B数OK,那么好索引呢?
07:02
这些的消息本质上是个B数,使用B数作为索引,指向这个里面的存储信息,那么言下之意,兄弟们你可以把它理解为这个主要存数据,这个就是索引文件。那么回顾我们的MYSQL数据库,弟兄们都清楚杨哥的MYSQL5.5版本装在这这个data下面,是不是有买SQL,那么我们讲过。对于我们的my item这样的数据库存储引擎,我们每建一张表,是不是有f IM myd和MYI?IM是这张数据库的表结构,MYD就是这张表的my date my I是什么?就是my index,那是不是根据索引去这个date数据里面去找数据?有点类似于my eye就是新华字典的索引目录,My dear就是新华字典的那些文字正文,那么我们是不是一定查新华字典,是先从索引去找到某个汉字啊,在哪一页?OK,好,那么这个就是。
08:05
DB点对,那么好。第三个文件叫DB,是当前这个索引文件里面哪些页面是空闲的,那么它这个里面就会记住一些空闲的页,翻遍后面建索引的时候先从空闲的那干嘛建起来,保证索引的连续性,没有碎片。那么第四个redo,既然说叫redo,什么意思啊?恢复,那么如果可按TB存储强制后启动用于恢复B数索引,那么也是一种容灾备份机制。如果我突然死了。那么怎么办?消息丢了,哎呀,索引这些和日志那么重要,那么这有个redo,相当于它又是这个,又是这两个的一种什么恢复和容灾备份机制。好,那么lock什么东东呢?文件锁表示当前获得卡DB读写同学的broke,那么言下之意是不是有点像买这个数据库里面的悲观锁呀?哎,哪一个线程现在往MQ里面丢着消息,你别注丢错了,那么所以说我在写的时候,那是不是就像加一个读写锁一样,最好是什么?
09:06
写独占。查询。共享和公开,好,那么这个就是可看DB下面路径,下面的每一个是什么一个意思,那么重要的是前两个,这个就是索引,这个就是我们的日志,通过他去找里面的东东,存的数据,推送,推送进MQ里面的消息都会分别记录在这儿,然后逐渐为它建设索引,那么它就是一个迷你版的文本型的微型数据库,等同于我们MYSQL里面的是吧?MYI是索引,MYD是数据,通过索引找数据。好,那么这个就是我们可汉DB的存储原理的介绍,那么切记这句话,干嘛四类文件。一把锁四加一可看DB的结构,面试的时候,如果项目经理问你说消息存储机制,可看DB这四加一的这个文件结构。
10:02
四个文件一把锁,要能够答的出来,OK,那么为大家介绍到这儿。
我来说两句