联合索引的技巧

2 分钟阅读 295 字 + 167 词
  1. 覆盖索引 :如果查询条件 使用的是普通索引(或是联合索引的最左原则字段) ,查询结果是 联合索引的字段或是主键 不用回表 操作,直接返回结果, 减少IO磁盘读写读取正行数据
  2. 最左前缀 :联合索引的最左 N 个字段,也可以是字符串索引的最左 M 个字符
  3. 设置查找频繁数据靠左 :根据创建联合索引的顺序,以最左原则进行where检索,比如(age,name)以age=1 或 age= 1 and name=‘张三’可以使用索引,单以name=‘张三’ 不会使用索引,考虑到存储空间的问题,还请**==根据业务需求,将查找频繁的数据进行靠左创建索引==**
  4. 建立联合索引的时候, 区分度大的字段排在前面
  5. 索引下推 :like 'hello%’and age >10 检索,MySQL5.6版本之前,会对匹配的数据进行回表查询。5.6版本后,会先过滤掉age<10的数据,再进行回表查询,减少回表率,提升检索速度
  6. 联合索引注意遇到 范围查询(> 和<)就会停止匹配
  7. 给经常需要组合使用where ... order by ....的字段建立联合索引。

目录