• 索引不生效的场景


    组合索引

    旧的mysql版本可能因为索引的顺序问题不生效

    单列索引

    思路:一般索引不生效通常意味着数据库的引擎解析优化的查询需要全表检索

    所以(这边校验的是mysql 5.7):

    1、对where做了函数判断(order by 也一样)

    substr(USERNAME, 2)='admin'

    2、本来以为not in会触发,结果发现是范围查询,也有用到,只是可能性能有差异

    3、exists和not exists倒是都有两个查询计划,第一个用的事全表,第二个具体看有没有索引,有的话也会用到

    4、某些情况下,引擎自动优化的结果:小表查询

    5、类型不匹配的情况下会触发类型转换,导致索引失效

    6、多表查询,组合索引情况下,前一个索引适用了范围匹配

    7、数据量太大导致优化器放弃使用索引

    8、查询出的数据超过总数据的一定比例

  • 相关阅读:
    luogu1210 回文检测
    luogu2420 让我们异或吧
    luogu4151 最大XOR和路径
    线性基
    博弈论(扯淡)
    矩阵求逆 模板
    luogu2513 逆序对数列
    洛谷4316 绿豆蛙的归宿(DAG递推/概率dp)
    1898: [Zjoi2005]Swamp 沼泽鳄鱼
    矩阵
  • 原文地址:https://www.cnblogs.com/gabin/p/13528081.html
Copyright © 2020-2023  润新知