00:00
上一讲我们呢讲到了type,给同学们介绍了非常关键的type类型,访问类型的各种参数比值,那么呢,从最好到最差来决定了这个索引的使用情况,到什么级别,那么呢,基本上百万级别以上的,那么呢如果出现了沃,或者千万级别以上的出现了沃,如非特殊原因的话,建议是不是要采取优化策略了,但是现实而言,由于系统的复杂性,那么呢,我们呢,一般而言到range最好能到瑞法,那么呢到其上面三个呢,情况呢当然肯定是更好,当然现实情况呢也很少好,那么呢,Type呢,我们呢就先说到这儿,下面我们呢来看看。Possible kiss和kiss,那么这两个是一套装,两个一块讲,那么呢,简单一句话,这两个尤其是什么?刚才也说过,ID type t是我们的第三个关键的衡量指标,好,那么呢,这两个是什么意思呢?这两个决定就是一,你是否使用到了你的索引,也即来判断是否索引失效,二、在多个索引竞争的前提下,最后MYSQL到底用到了哪一个索引好?这两个为什么一块讲呢?
01:37
这个possible是不是一种可能,是不是啊,它的意思是呢,干嘛呢。显示可能应用在这张表中的索引。它的池可能会有一个,可能会有多个查询涉及到字段上,若存在多个索引,则该索引将被列出,但不一定被实际查询使用。好简单一句话是什么概念呢?就好比这个key possible case的意思就是说,主人你在我这张表上面建了四个符合索引。
02:20
你来了一条circleq,我自己进行分析和判断以后,我可能这四个里面,我觉得跟我们这次请求搭的上边的可能有两个,也就是说我初步买SQL,我本身自我判断,我觉得可能本条SQL会用到什么。两个索引,好,但是注意红色这句话,但不一定被实际查询使用,也就是说,就好比说,如同你今天结婚了,宴请亲朋好友做客,理论上你估计来十桌,一桌十个人,100个人,但最后kiss来了多少个,90个,那是不是九桌呀?也就是说possible kiss,简单一句话就是MY分析出推测可能被用到的索引有哪几个,而kiss是最后那一个实际用到的索引,简单一句话就是就像你请客一样的,理论上应到多少人,最后开席的那个瞬间十到多少人听懂。
03:24
OK,那么呢,再来看这个kiss是什么意思呢?实际使用的索引如果为难两种情况,一没有使用到索引,或者你索引就根本没见,一种是见没见那肯定是烂,对吧?第二种是什么呢?见了以后索引失效,你没用上,那么呢,若查询中出现了覆盖索引,则该索引仅出现在K列表当中,大家看这是不是有个蓝色的箭头啊?那么什么概念呢?它跟后面有关联,先不要管这是不是多了个概念叫覆盖索引啊,那么好,我们呢先不啰嗦,我们呢先呢来看一下我们的这个动作。
04:09
大家请看。刚才我们讲到table type,现在是不是讲到这了,他什么意思啊?他的意思就是说主人你的这条circle理论上有没有用到索引,实际上有没有用到,也没有,所以说重要的是这个key,如果key等于,那就说明索引要么没见,要么见了,你没用所谓的索引事项。OK,好,那么来同学们,如果说有点不习惯的,我们来看,大家看,就用我们的这条,我们呢可以看。这条T1这张表理论上主见索引IDX t1理论上你用到几个索引,不是理论上,理论上就像我们说我请客,我今儿结婚,理论上应该来十桌人,最后只来了八桌,听懂了吧?Possible case就是理论上T1这张表应该用到主页索引和T1IDX t1这个索引里有两个可能会被用到,最终他用到了哪一个好,而这个理论上用主键索引实有没有用到,OK,也就说kiss就是实际最终你用到了哪一个索引,听懂了吗?好,那么呢,我们再来看看哈,大家看这个时候这种情况,理论上你没有用到索引应该,那实际上是不是也没用到啊,OK,那么呢,这个呢,就是我们什么相关的一个介绍,好,我们呢大家可以看看,大家看这些是不是理论上面用的,实际上也没有啊。
05:45
当然还有两种情况,什么呢?理论上用不到什么,实际上用到了,还有一种情况呢,理论上应该被用到,实际上呢,失效了,所以说这种情况就是什么呢?一种MYCQL呈现给你的一个什么最深最真实的MYCQL,理解主人程序员所发送的CQ,它自我的反应听懂OK,那么呢,所以说kiss和possible kiss的它的作用就是白色Q呈现给主人,我可能会用到两个索引,最终我用到了哪一个一或者说我根本就没有用上索引,好,那么来看看蓝色这段话查询中。
06:29
若使用了覆盖索引,则该索引仅出现在key列表中。这句话什么意思呢?来,我们来看看SELECT2FROM t s简单吗?好,那么来,同学们请看。现在同学们请看哈,我这个type跟我说。是不是索引扫描好,理论上possible case有没有用到索引好,实际上呢,那么也就是说我们我们是看,就像我们说的,就像你比如说宴请,你该不会说,诶理论上我请十桌,但是最后来了11桌,然后你跟人家讲,理论上我们没请你们,请你们回去吧,这个时候我相信人家给的过来的话,请不请啊,那么最终我们是不是只能以这个为准呢?好,那么来先第一次提什么叫覆盖索引呢?这儿呢,重要的观念,后面我们会呢,会用它来解决like查询的问题,听好同学们,之前你们干活是不是经常写select心啊,好,但是这各位亲E我有没有写select星,我写的是不是克一二具体的字段啊,然后呢,什么叫覆盖索引呢?抬头。
07:55
就是说我select查询的这些CH1 CH2CH34查询的这些字段和我的索引键的个数的字段刚好吻合,简单的来言,就是我select后面查询的字段和我键符合所引的个数和顺序一一一致,什么意思呢?来以前我是查星,这个星有可能是十个字段,有可能是20个字段,同意吗?但是我现在就是克拉西克拉二,请问顺序而言是不是一二切两个?请问这是我查的字段的要求,我见的索引是不是也是一二两个?顺序是一二个数是不是也是一二?那么言下之意就是什么?刚好主人你见的索引叫克一二,拿这两个字段建了一个符合索引,刚好你查的数据也找CH1和CH2,我是不是就跟我们的索引建立的和你查的字段刚好match?
08:55
刚好匹配呀,这个时候就是什么索引和你你查的字段和你键的索引的个数和顺序刚好吻合,那么这个时候我们是不是可以从索引上取而不用word全表扫描了呀,所以说它这这个type是不是index,理论上MY觉得说你应该任何索引都用不到,但是最终实际而言,我是不是全索引扫描直接从索引上找到了我们的答案呢?OK,那么呢,这个时候我们呢,一定要明白possible kiss是MYSQL推测理论上应该用到哪几个索引,而kiss才是我们关心的真真正正有没有用到我们的索引,听懂好,那么这个时候呢,那么同学们请看我这个table,那不用讲是不是就是索引根本就没见啊,那么好,大家看那么这两个哇哇,你看只要你没见,索引是通通是全表扫描啊,OK,那么这个kiss是那那当然我这是不是没键啊,OK,那么所有。
09:56
说这个possible case,那么就是理论上用到哪些索引,Kiss是最终落地,真正用到了哪一个索引,没问题吧,好,那么呢,由于这个key跟这两个呢,名词呢一样,我们也一块讲一下好key。
我来说两句