00:00
讲一个重点,Like弟兄们呢,经常也应该写过这种程序,假设同学们请看like这个时候同学们是不是写呀,我们呢,是不是写过这种情况,写过吗?好的,那么呢,首先呢,咱们呢,老规矩,还是这句话,我们呢直接把它呢我了,图简单省事哈,像这样,各位亲,我现在是不是新芙蓉他干过这事吧?好,同学们能查出来吧,好,那么呢,下面的问题来了。那我们呢,直接。好,那么呢,我们呢,再来,反正我们就说过哇,群秒扫描是不是带百万级别的单表的话是必须要避免,那么好就说老师我这张表就可能就是1000条记录全部要扫描,那就扫了一一百十来条,是不是也没什么事啊,但是注意我们再来看看,首先同学们回答我一个问题,Like是什么?能理解吗?现在这个问题是什么?不是说范围之后全失效,因为它后面有没有咱战术就是单独的一个呀,那你跟我讲三条。
01:48
是不是就是只有百分号各不一样,其他均是相同啊来,那么也就是说两边都有百分号,请问有没有群面扫描,有没有这个,有没有这个呢?所以说一般而言写like查询最好,是不是只能在右边写百分啊,那么也就是说是得到我们的什么第五句口诀,百分like加右边啊。
02:21
听懂,好,那么呢,这个时候的话呢,我们呢可以看到,但是问题是抬头同学们别着急,记笔记都给你们记好了,你们也知道是吧,我绝对是管生又管养,管杀又管忙的类型,现在这个问题是我不我生产环境中我就得写两边都是百分号的,因为我们可以看到大家都明白哈,你两边都百分号的和右边是百分号的,跟我讲是不是有可能数据查出的结果是不一样的,同意吧,那么这个时候我们呢,来看看哈,现在我们呢,要完成的工作内容是这样的,首先根据我们得到的第一个结论,我们可以获得这个就粗略过一遍,刚才是不是真实演示过了,也就是说什么只有写在最右边的是不是才会避免索引失效,并且like。
03:21
和查询是不是一个范围啊?好,这是第一个结论,第二个结目就是我生产过程当中,我非得给你做对,我就得用两边百分号,好那么来面试和工作中的问题,他会问你是这样的,在考买思Q的过程当中,他来看你有没有实时的开发工作经验,好你说说这个like在美里面应该怎么写,我们也说过,是不是要看那个函数必须要拼啊,现在能理解吗?不是去写死,不是乱来的,这个东西真讲究,咱们硅谷教你的,不是说做完一个东西,做出来东西是要做好做到位的东西。第二步,那么同学们,你这个like如果在买水写索以时效的时候,你知不知道这个LIKE100分号左右两边写,单写左边,单写右边,哪一种,三种情况哪一种最好,我们知道现在是不是只有是最右边最好,所以说LIKE100分加右边。
04:21
问题是他现在跟你说,我在工作中第三步,我就是碰到了问题,我就得写两边百分号,否则我数据不对,那么我的问题是如何like字符串两边百分号的时候,所以失效的问问题你如何解决呢?好,这个时候来同学们,我们呢,玩一把,首先我好,那么来同学们请看一下,我这建一张表,那么呢,叫t PL user,没有跟里面的重复吧,好,整一版东西呢,也很简单,那么呢,ID name age email so easy,嗯,那么往下翻。
05:19
见表成功,然后呢,干他一堆数据。同学们请看,我故意呢给同学们造了一些假数据哈,造完以后注意这个是不是AAAA1234啊好,那么来同学们,我们大家都知道我现在干嘛呢?没有见任何索引吧?简单一句话,对于like两边百分号的问题,我们比较推荐的方法呢,用的是什么覆盖索引来解决?好,请看我演示。同学们呢,都明白哈,假设我现在干的活是这样的。
06:05
S select,哎,我就直接新吧,先不管别的,我们先说这个好,兄弟们都知道这个东西索引会不会失效,好,我们先不说索引的事,咱们先看结论几条记卵好,这种东西索引会不会失效,会不会我说过了LIKE100分加右边是不是,但是你B你的性能倒是好了,结果呢,是不是没有啊,那我们再来看看。好,这个东西兄弟你确确实实性能最好,所以没失效,但壳没数据是不是没有一切啊OK,那么呢,我们呢来看看现在咱们呢在见,所以之前我们试试这些内容一条条的过哈看哈,这些是我有讲究的深刻的理解覆盖索引,我现在有没有见索引我没有写select新吧,现在我是不是name age,那么请跟我讲name age email没问题吧,现在我是只有内A级好没有见过哈,同学们咱这是是全扫,因为我现在根本就没见引哈。
07:34
是不是除了一个主键什么都没有啊,好一下下翻,那么呢,节约时间,我是不是四条一块没问题吧同学。那么这个时候同学们请看单独用ID是不是也没有索引啊,好,因为根本就没键嘛,单独name,单独A减是不是都没有任何问题啊好,那么现在我们呢,往下走,现在干的事呢,再来看我们这是不是ID name age这块是不是name age,再来执行这两条,因为我要一条一条的带你们看字段的变化,现在是不是ID,那A通通都没有啊好,那么再来大家看通通都没有啊好。
08:30
往下走。我们呢,直接select新from这些以后刚才也演示过没问题了吧,嗯,好,那么再来一次吧,也就当演示一下我要干什么事呢,那么来同学们什么都没有啊,好,这是没所语的情况,字段从心到移,就是相当于说字段是不是心是全部啊,ID跟我讲是不是相当于C。单独单独单独内,那我干什么我了来看好弟兄们,我现在跟我说我是不是非要是用两边是百分号的,刚才前面我们说过没见索引之前是不是全是全表扫描key是none啊好看好我现在的工作,我呢name a假设我就只需要经常查试这两个字段,然后见表成功,那么这个时候同学们我们呢,来逐步的是么?分析一下我们相关的circleq来同学们现在刚才没见索引之前跟我讲是不是全表扫描索引之效好现在哈,假设我见完索引啊抱歉,刚才是不是根本就没见过索引,我们也知。
09:59
如果说你这个索引键的不恰当,会导致建了的索引是不索引失效啊,我们现在要完成的是两边百分号,且不能索引失效,是不是这个要求好,那么我们采采取的策略就是什么?建立一个内edge,用覆盖索引来保证避免全表扫描,大家可以看。
10:24
有没有用到?请问这个type是还是index,恐怕要比握要好很多啊。好,再来哈,跟我讲,大家猜猜我建的name is这个索引ID用不用得到,或者就是说现在甭管用不用得到,你先告诉我,我接完索引以后ID,我只查select ID是不是没有写信啊?请问这个时候我的索引情况是什么呢?好看一眼。
11:00
有没有,为什么,因为ID是什么东西啊,它是不是主键,它也可以从主键上去取啊好再来哈,同学们哈,刚才是不是name is,好,那么我单独呢,请问你跟我讲单独的情况,我见的索引哈。是不是内A级,请问我现在只查内落不落在我的内A级的符合索引上沾不沾边?好,同学们请看此时有没有用到,所以有没有失效。好,再来我们现在age跟刚才内幕一样,落没落地沾不沾边,因为我们现在是不是都是两个百分号,我非得这么干啊,嗯,那么好,大家看太错,Key key不是那的吧,不是,好,那么再往下看,别着急,跟着我走,一定会有你的学到的东西看好现在是不是ID name下面是不是ID name age下面是不是内A减,请问这三个会不会用到,会不会?
12:18
一溜圈的下来,没有实像,没有实像,没有实像,没有实像吧,那么再来那A级没有实像吧,别着急,深刻体会覆盖索引兄弟们,现在我写的这些东西是不是都是全部或者一个沾边啊?要么全部吻合,要么是不是半个沾边啊?看好太平日子过久了,我现在给你来个搅屎棍看好兄弟们啦好,我们来看看,因为心你兄弟你建的,所以是不是name你心情问咱们不说别的,光是个数上超不超过我能用得到吗?是不是立刻索引失效啊?那么再来老师。
13:18
是我不用心,我这么干大家也都知道,如果我刚才说过,假如说你就是ID内跟我说用不用得上,但是不好意思啊,我们呢,直接呢,给你干的事情呢,够狠,加了个搅屎棍一面,你建的索引是不是叫内A级啊,有没有一面,那么这个时候请问覆盖索引,你建的索引和你查的字段还能覆盖,还能match是匹配吗?你建的是name age,你现在干的是name age,一秒,请问。吻合,就像是一个锅和锅盖一样,是不是偏大了,大家请看。
14:05
3000,那么所以说如果说你非要写两都是like等号的话,咱两边都是LIKE100分号的话,咱们是不是可以用覆盖索引来解决这个问题啊,通了吗?那么这个时候再次强调过一遍哈,三个,我这张表有ID name age及面ID不用讲,永远是不是天生自带的主键索引啊,那么兄弟我建的索引是name和A级,然后呢,现在我们也刚才也知道,你如果只写右边的百分号,咱是不是查不出来,但是你要是两边都写百分号,咱们是可以查出来四条,但是如果说怎么才能避免既要查得出来,也避免索引不失效呢?我非得写两边都是百分号呢?我们的解决方案是用覆盖索引,那么所谓覆盖索引就是什么呢?你建的索引和我查的字段。
15:06
是不是个数顺序上最好完全一致啊,那么简单而言,兄弟你见的索引是符合索引名字叫这货只有两个字段,Name和age,所以说结合上面的全部CIRC,我们可以看到单独ID能不能用到name在不在其中的一个一部分沾不沾边,A级是不是也沾边?那么好,这一堆是不是通通这三个都沾边啊,但是呢,我给你来个新或者多了个email,这个时候是导致你不沾边,个数不对了以后导致你键的覆盖,所以同样也没有解决两边百分号的问题啊,通了吗?没问题吧,同学们,OK,那么呢,所以说呢,这个呢一定要注意是吧,通配flag开头的话写在左边写。
16:06
的两边索引会失效,那么呢,我们的原则有两个,1LIKE100分写右边,如果两边都有百分号,咱们是不是覆盖索引解决两边的内容啊,好,那么呢,这是一个第八个情况来第九个字符串不加单引号会导致索引失效,这个在开发中是重作,以及只要八差类型你写错了,一定会被项目经理骂死,换句话说,什么挖差类型绝对不能失去单引号。
我来说两句