您的位置:首页 > 数据库 > MySQL

mysql 索引失效情况

2018-03-19 16:54 211 查看
基于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.遵从原则,在索引列上进行计算



           

        

        
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MySQL 索引