00:00
字符串不加单引号会导致索引失效,这个在开发中是重罪,也记只要挖叉类型你写错了,一定会被项目经理骂死,换句话说,什么挖差类型绝对不能失去单引号,好,同学们你就说我没感觉啊,来咱们呢,看看我们现在的问题是什么?来同学们,我们select from star,各位亲,咱们这个name这是有个2000啊好嘞,我现在呢,也很简哈,也很简单,Name等于2000,我说过一开始我是不是说过内是个八叉星,请问我这么写正不正确?答案出来了在哪?
01:01
什么情况,怎么就跑了什重来三西Y内等于2000,请问这个东西我这能不能查出答案?买色Q很聪明,首先他是这么干的,他要是查不出来,大家说会鄙视买色Q功能不强大呀,好,为了避免被别人鄙视,买色Q说我能查出来,但是。各位亲,我们至少明白整数的2000和死砖类型,2000是不是一个是硬特型,一个是拉叉类型啊,当你说2000的时候,买思认为主人抛给了我一个整数,2000是不是一个整数,是正整数没问题吧,但是往下面他自己去优化分析,他来理解主的意思以后我这个内容是叉行,那么这个时候MYSQL将会在底层隐视的自动的隐形的做了一次类型转换,实现了数字到string帮你查出来,那么这个时候我们再来看看这条不要在索引链上做任何操作,自动或手动的什么转换,那么呢,我们呢,可以看到,假如说各位亲,我现在这个explain大家看我们说过了。
02:38
两条是不是都能查出同样的结果呀?那么但是呢,同学们请看我在这边,请问有没有用到索引,我这个叉没有产生类型转换,影视的类型转换吧,好。大家请看上面是规矩的,理论上应该用到,实际用到,而且type是ER,性能好不好,下面这条type变什么了?理论上你应该用到实际的,所以说在思Q书写当中,挖差类型的东西,绝对不要忘记单引号在推而广之的往前说什么概念,绝对不要在不知不觉当中,底层数据跑的时候发生了隐视的,你不知道的,表面上看不到的,隐视的隐含的类型转换,这样会导致全表扫描性能就被拉线了。所以说很多时候去到一些好的平台,大的公司,发现这个新员工来了以后,系统就变慢了,我们把它辞退了以后,这个系统就好了,是吧?好,最后我们大家来看少用。
03:57
不过用它来连接,注意我说是少用还是不用,OK,那么呢,用它来接的时候也会导致索引失效,那么呢,我们呢往下看。
04:12
来同学们这条有没有问题,是不是来找找名字等于这张三或者是李四的呀?好,大家看有没有用好,而且两个都是带头大哥啊。一闪。理论上能不能查出来,所以说结果是正确,但过程是不是有点曲折啊?OK,好,那么呢,最后我们来看看前面咱们说explain介绍的理论知识,第一板斧,第二板斧,咱们是不是呢,多个案例来和大家总结了一些口诀呀,那么呢,我们呢,可以回顾一下,一、带头大哥不能死,二、中间兄弟不能算,永中间兄弟不能断,永远要符合最佳左前缀原则。三、是不是所以列上无计算,这个计算变成手动自动隐示的显示的类型转换。四、LIKE100分加右边没问题吧?五范围之后全失效。
05:33
能跟上吗?嗯,OK,那么呢,我们呢,直接呢,什么呢,最后一个是不是字符串里有引号啊,也就是说什么字符串里面是不是单引号永远不能缺呀?OK,那么差不多这些口诀就是各位同学们当然哈,面试或者笔试的时候,你是不是给我答这些呀,你可千万别说在卷子上写带头大哥不能死中间兄弟,那估计把面试官干干崩溃了,听懂了吧?好,那么呢,下面呢我呢先暂时呢什么停止一下屏幕共享,我们是不是来了一下小总结出一个小题目给同学们把前面的再串起来呀好,我先停止一下屏幕共享,遮挡一下哈来那么呢,同学们呢,我们呢直接开弓好。
06:34
题目呢很简单,单指索引还是复合索引好来ABC name age position职位好,假设A等于三的时候,所以是否被使用正确,这个呢,这个呢,这个呢看好看好原因是什么?是不是大哥挂了好这个呢,首先用了几个OK,那么我们可以看到,因为中间是不是断了好这个呢,是不是纯粹的用查询来说使用到了A和B啊C不能再。
07:34
范围之后,B是不是给它断了,注意这种范围而言,你就把它记住,它用于是吧,排序用到了一部分听懂,再来看这个like是不是也一样啊好那么呢,我们呢,可以看到是不是A用B用C不能用啊,OK,那么呢,回顾了我们的索引失效的案例,这一切才是真正真正能够写出高性能加码机些系统的核心关键知识点,这样的话,我相信你只要把这些脑子里面有不悬了,你以后写CQL是不是或多或少会进行自我的优化分析,写出来的SQL性能上会好一些啊OK,好那么呢,这个呢就是我们的什么索引失效的相关的案例和讲解,反过来讲,只要你不让它失效,是不是也就是一种优化的策略啊啊。
我来说两句