首页 > 编程知识 正文

mysql索引失效的情况,3种索引失效情况

时间:2023-05-03 15:25:41 阅读:285368 作者:2285

基于MySQL5.5.33


数据量:

    

索引失效情况总结:

    创建索引sql:ALTER TABLE `table_name` ADD INDEX index_name ( `column` ),表中先创建2个字段的普通索引             

        1.sql语句中or的语句使用,执行sql:

            1).生效

    

            2).未生效

                

        总结:or的使用2边必须都是索引列,如果有一列不是,则索引无法生效,进行了全表扫描

        2.like的使用:

            1).生效


            2).未生效:

            


        总结:like的百分号不能写在前面,否则无法生效,进行全表扫描

        3.索引列上进行计算:

            1).生效


            2).未生效


         总结:索引列上不能进行计算,可以将计算放到条件上

        4.索引列是varchar类型

            1).生效


            2).未生效


        总结:索引列如果是varchar字符串类型,则必须加上''进行包含

        5.组合索引:创建索引sql(ALTER TABLE `table_name` ADD INDEX index_name(`column`,`column`,`column`);),遵从最左前缀利用索引中最左边的列集来匹配行,这样的列称为最左前缀,例如由id,name,age3个字段构成的索引,索引行中按id/name/age的顺序存放,索引可以搜索下面字段组合:(id,name,age)、(id,name)、或者id。如果列不构成索引最左面的前缀,MySQL不能使用局部索引,如(age)或者(name,age)组合则不能使用索引查询

    

            1)生效:

   





            2).未生效

                1.未按照最左前缀的原则:

                    


                2.按照最左前缀使用or进行查询:

  

                3.遵从原则,在索引列上进行计算


           

        

        

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。