00:00
同学们,我们呢继续,现在是不是还得加一张表了,那么呢,第一个是不可书籍类,这个呢,手机类一样,也是跟有一个分类card,你就当这种东西是什么,比如说三是军事的就是军用手机,三是军事的就是军事类的书籍,听懂没什么实际意义,主要为了主要进行关联,好吧好,现在我们呢拷贝,然后呢粘贴。完了以后,那么呢,兰新fromone phone有了吧,有三吧,好的,那么呢,现在我们呢,需要完成的内容是这样的,来。也就是说三表了以后,那么来同学们,我们这儿现在要干嘛呢?我们呢,刚才我们上一表是不是见过是个class呀,你看哈,Show index干嘛呢?From是不是我们的什么呀?Class是不是建了一个Y,好,那么这个时候我先将其干嘛删掉,那么呢,这个时候啊,那么是不是drop铺index干嘛?One on哪个表class没问题吧,那么现在我们干干净净的哈收A。
01:29
Show class没有吧,那么book没有吧,那么好phone就不用说刚刚见了好吧,那么现在我的问题是一三表这个CQ怎么写?二三表是不是至少两次关联,那么应该建在哪些字段上?好,那么现在请同学们尝试一下三表这条circleq你写出来纸上好,我们呢给同学们思考了一下呢,以后我们呢也看了我们的建表circleq,然后呢,我们呢把我们的这条circleq现在。
02:17
拷贝我现在呢是一个都没有三表连接,跟我讲弟兄们我是不是class left join book呀,这个东东和他是不是先得到了第一个结论,然后他是不是在left join phone啊,那么这样的时候我们是不是就可以得到我们的结论,第一个我们是不是做连接的话,弟兄们咱们是不是干嘛。左边class o了,右边这个book是不是要建一个,这个得到了以后又是一个left,这个左边的O了以后,右边的是不是要建,那么这个时候是不是放需要建一个呀?好,那么这我们就以left为例,那么假设我们没有建之前我们来看看哈,假如说我们这儿我把它改了inner,然后explain,那么大家看主要是为了给讲前面有一个字段好。
03:24
出现了什么?多接缓是不是使用了连接缓存呢?因为你表多了以后买CQ为了自我提升技能以后它是不是会用这些B法,我们学过lo流是不是B法是一种缓冲流啊好,那么所以说呢,均匀B法会出现在哪?那么这个我相信一到六是不是都给同学们演示过了,OK,那么下面我们呢来看看回归我们的正题,工作当中是不是左连接和右连接用的最多呀,来E我们现在粘贴,首先我们来看看先不有没有结果,大家看ID card,这个是不是class啊,这个时候是book card是不是book,这个是phone ID是不是放没问题吧,那么好,我们现在explain了,以后来看看效果,爽死你了,是不是全部全表扫描啊,那么你可想而知,如果。
04:33
你做电商项目,你们的积分项目,现在那个数据库,你把数据加多了以后,知道应该怎么优化了吧,因为后面你们做过的那个电商积分项目,就是我们做的电商乐乐天老师带着大家的,没问题吧,到后面周末的时候,是不是一高兴给自己刷个3000万条记录,再查查试试看啊好,你们会发现,诶怎么你以前做的对的东西,量变是不是引起质变开始慢了,好那么呢,我们呢往下看,现在分析完成以后,我们呢往下走,For,我建一个没问题吧,好不,我建一个没问题吧,这个时候哎呀哎,我去退出来了。
05:22
一不小心哈,被弹出来了哈,柚子DB0629。好,那么这个时候我们呢,来看看两个索引一建立了以后,那么来同学们,刚才我们是不是全是三个握呀,是不是290629库的class表的card,这个是不是0629库的book表的card呀?那么大家看20加20加20和现在这个数字我不用说了吧,OK,那么呢,这个呢,就是我们什么相应的单表双表三表的相关查询和解释后两行的type都是且总的Rose消化效果很好,效果不错,因此索引最好设置在需要经常查询的字段当中,能理解这句话的意思吧。OK,那么呢,我们呢,就用语句这呢,后面还会讲,先提前剧透一下,记住一些小的细节。第一个。
06:31
尽可能减少join引中的循环总次数,不要就引过多或嵌套明白,结论是永远用小的结果集驱动大的结果集,小表驱动大表,听懂好。那么什么意思呢?就是说各位请假设前面我们的那个那个class和不考,你跟我讲书籍类多还是书多,书多世界上这个有多少多少类的书,比如说新闻类,体育类,股票类,军事类,财经类,这个类咱们有个一个1亿类总该有了吧,但是这个书我跟你说你这个记录干嘛?就比如说你一套电商系统,单单你就是专做卖书的一个商城,你这个书本类你可以有50类书,同意吧,军事股票、体育各种,但是书你是不是可以干到它的一个亿啊,那么谁是小谁是。
07:31
大表,那么是不是要用class来驱动这个book呀,圆规不动的那只腿是小的,驱动那个大的,那么这个时候你那个数据越长,拉的越长,画的圈圈是不是长越大,那么OK,那么反过来讲,你要是用那个大的驱动小的1亿来驱动这个小的,你要进行1亿次IO访问,那么这个时候干嘛?你是不是比较频繁的IO啊?好,那么再来看我们呢,往下走,当然这个待会儿回回头我们还会说哈,只是先记着这么一个剧透,有这么一些优化的概念,听懂第二个优先优化嵌套循环里面的内存循环什么概念你加括号,以后我们说过鸡蛋环,鸡蛋白,鸡蛋壳,最里面的如果快了,最外面的是不是才轮到啊?好,那么再来保证join用是被驱动表上的join应字段条件已被索引。
08:31
上面这个是不是最好的证明没问题吧,是不是都是用到了索引,各位亲,用到了我们见到的Y和Z这个索引了吧?好,那么呢,再来最后,但无法保证被驱动表的join引字段被索引器内存充足的前提下,不要太吝啬join buff法,刚才我们是不是看过join buff法了,这个九云buff法什么概念,是不是就是慢一点看复那些配置文件,有时候如果你查询极端的情况,是不是要把它调大一点啊OK buff法大是不是缓冲高好一些啊OK,那么呢,这个呢就是我们什么,所以三表相关的分析。
我来说两句