zoukankan      html  css  js  c++  java
  • mysql之索引优化

    索引失效的十种情况,建议全部记住
    1)全值匹配我最爱
    2)最佳左前缀原则(如果索引了多列,要遵守最左前缀法则。指的是查询从索引的最左前列开始并且不跳过索引中的列。)
    3)不在索引上做任何的操作(计算,函数(自动or手动)类型转换)会导致索引失效而转为全表的扫描
    4)存储引擎不能使用索引条件范围中右边的列
    5)尽量使用覆盖索引(只访问索引的查询(索引的列和查询的列一致),减少select * )
    6)mysql中使用不等于(!=或者<>)会导致索引失效而扫描全表
    7)is null , is not null 也无法使用索引
    8)like以通配符开头的(%AA...)也会导致索引失效,而扫描全表
    问题:解决 like %字符串%时索引不被使用的方法:建立一个符合索引,同时在查询时查询索引对应的列
    9)字符串不加单引号,导致索引失效
    10)少用or,用它时索引也会失效
    总结:
    假设index(a,b,c)
    Where语句 索引是否被使用
    where a = 3 Y,使用到a
    where a = 3 and b = 5 Y,使用到a,b
    where a = 3 and b = 5 and c = 4 Y,使用到a,b,c
    where b = 3 | where b = 3 and c = 4 | where c = 4 N
    where a = 3 and c = 5 使用到a, 但是C不可以,中间断了
    where a = 3 and b > 4 and c = 7 使用到a和b, c在范围之后,断了
    where a = 3 and b like 'kk%' and c = 4 同上
     
  • 相关阅读:
    171. Excel Sheet Column Number (Easy)
    349. Intersection of Two Arrays (Easy)
    453. Minimum Moves to Equal Array Elements (Easy)
    657. Judge Route Circle (Easy)
    CSS笔记
    保存页面状态
    UI开发总结
    ubuntu 下配置munin
    反向代理配置
    JavaScript 高级程序设计第二版
  • 原文地址:https://www.cnblogs.com/sjs355/p/7717709.html
Copyright © 2011-2022 走看看