mysql 索引失效情况

基于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.遵从原则,在索引列上进行计算


           

        

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值