• mysql 索引失效


    1、like通配符,左侧开放情况下,全表扫描
    2、or条件筛选,可能会导致索引失效
    3、where中对索引列使用mysql的内置函数,一定失效
    4、where中对索引列进行运算(如,+、-、*、/),一定失效
    5、类型不一致,隐式的类型转换,导致的索引失效
    6、where语句中索引列使用了负向查询,可能会导致索引失效。负向查询包括:NOT、!=、<>、!<、!>、NOT IN、NOT LIKE等,其中:!< !> SQLServer语法。
    7、索引字段可以为null,使用is null或is not null时,可能会导致索引失效
    8、隐式字符编码转换导致的索引失效
    9、联合索引中,where中索引列违背最左匹配原则,一定会导致索引失效
    10、MySQL优化器的最终选择,不走索引

    11、使用 OR 关键字会导致索引失效,不过如果要想使用OR 又不想让索引失效,那就得需要为or条件中的每个列都建立索引。这很显然是和上面的不要建立太多的索引相违背。

    12.联合索引如果不遵循最左前缀原则,那么索引也将失效

    13.使用模糊查询的时候以%开头也会导致索引失效(这里就不再重复原因了,因为前面的文章都是说过了,这里就是为了帮助大家再会回忆下)

    14.索引列如果使用了隐式转换也会导致索引失效

    为频繁查询的字段建立索引

    避免为"大字段"建立索引

    选择区分度大的列作为索引

    尽量为ORDER BY 和 GROUP BY 后面的字段建立索引

    不要在条件中使用函数

    如果是已经建立好的索引的字段在使用的时候执行了函数操作,那么这个索引就使用不到了。

    不要建立太多的索引

    频繁增删改的字段不要建立索引

    小蚊子大人
  • 相关阅读:
    前后端分离的坑
    appscan 对于csrf漏洞扫描的坑
    appscan执行过程
    app scan状态码的坑
    linux修改jdk版本
    软件测试之性能测试
    jmeter 从文件中读取内容 CSV数据文件设置(CSV Data Set Config)
    robotframework基本操作
    robotframework生成随机数
    RobotFramework获取table的行数
  • 原文地址:https://www.cnblogs.com/ywsheng/p/14949128.html
Copyright © 2020-2023  润新知