• 索引失效(在实战过程中应该是要避免的)


    1. 索引失效的常见案例

      1. 全值匹配

      2. 最佳左前缀法则:如果索引了多列,要遵循最左前缀法则。值的是查询从索引的最左前列开始并且不跳过索引中的列

        1. 带头大哥不能死

        2. 中间兄弟不能断

      3. 不在索引列上做任何操作(计算、函数、转换类型等等),会导致索引失效而转向全表扫描

      4. 存储引擎不能使用索引中范围条件右边的列

      5. 尽量使用覆盖索引(之访问索引的查询(即索引列和查询列一致)),减少select *的操作

      6. mysql在使用不等于(<>)的时候无法使用索引会导致索引失效

      7. is null、is not null也无法使用索引

      8. like 以通配符开头('%abc')mysql所以失效会变成全表扫描的操作

      9. 字符串不加单引号,索引失效

      10. 少用or,用它连接时索引会失效

    2. 结论

      1. 定值、范围还是排序,一般order by是给个范围

      2. group by基本上都需要进行排序,会有临时表产生

      3. 对于单个索引。尽量针对当前query过滤性好的索引

      4. 在选择组合索引的时候,当前Query中过滤性最好的字段在索引字段顺序中位置月靠前越好

      5. 在选择组合索引的时候,尽量选择可以能够包含Query中where子句中更多字段的索引

      6. 尽可能通过分析统计信息和调整Query的写法来达到选择合适索引的目的

    3. 面试中可能遇到的问题

      1. 如何解决like '%字符串%'时索引不被使用的方法:通过覆盖索引进行解决,即查询的结果集尽量被索引覆盖

  • 相关阅读:
    replace和translate的用法
    java中静态方法和静态类的学习
    rank()函数的使用
    orcle函数的使用,及其调用
    父子级菜单的查询
    Centos7 安装K8S 小记
    三剑客之三 Awk小记
    三剑客之二 Sed小记
    三剑客之一 Grep小记
    ssh与telnet区别 小记
  • 原文地址:https://www.cnblogs.com/juddy/p/16376675.html
Copyright © 2020-2023  润新知