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