• 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 同上
     
  • 相关阅读:
    滑动窗口(单调队列)
    离散化
    leetcode第196场周赛
    WindowsForm实现警告消息框
    WindowsForm实现TextBox占位符Placeholder提示
    WindowsForm如何移动一个没有标题栏的窗口
    WindowsForm给窗口添加一些简单的动画效果
    WindowsForm切换窗口的几种常见实现
    Visual Studio Code搭建django项目
    PyInstaller打包Python源程序
  • 原文地址:https://www.cnblogs.com/sjs355/p/7717709.html
Copyright © 2020-2023  润新知