专栏首页用户7737280的专栏索引优化 最左前缀匹配原则
原创

索引优化 最左前缀匹配原则

索引是有序的,index1索引在索引文件中的排列是有序的,首先根据a来排序,然后才是根据b来排序,最后是根据c来排序,像select * from tab 这种类型的sql语句,在a、b走完索引后,c肯定是无序了,所以c就没法走索引,数据库会觉得还不如全表扫描c字段来的快。

以最左边的为准,只要查询条件中带有最左边的列,那么查询就会使用到索引组合索引:当我们的where查询存在多个条件查询的时候,我们需要对查询的列创建组合索引,最左匹配一般组合索引一起使用。

回表:回表是发生在二级索引上的一种数据查询操作,简单点讲就是我们要查询的列不在二级索引的列中,那么就必须根据二级索引查到主键ID,然后再根据主键ID到聚簇索引树上去查询整行的数据,这一过程就叫作回表。

索引覆盖:当SQL语句中查询的列都在索引中时,我们就不需要回表去把整行数据都捞出来了,可以从非聚簇索引树中直接获取到我们需要的列的数据,le where a = ‘1’ and b > ‘2’ and c=www.alwdzr.com这就叫索引覆盖,当所有的列都能在二级索引树中查询到,就不需要再回表了,这种情况就是索引覆盖,覆盖索引减少回表

索引下推:可以在索引遍历过程中,对索引中包含的字段先做判断,直接过滤掉不满⾜条件的记录,减少回表次数。 使用ICP,当存在索引的列做为判断条件时,MySQL服务器将这一部分判断条件传递给存储引擎,然后存储引擎通过判断索引是否符合MySQL服务器传递的条件,只有当索引符合条件时才会将数据检索出来返回给MySQL服务器。

将与索引相关的条件由MySQL服务器向下传递至存储引擎,由此减少IO次数.索引条件下推优化可以减少存储引擎查询基础表的次数,也可以减少MySQL服务器从存储引擎接收数据的次数。www.alwdzr.com* from table where a = ‘1’ and b >

5.6之后才有,但有实际数据存储问题,唯一的缺点就是需要在磁盘上多做数据筛选,原来的筛选是放在内存中的,现在放在磁盘上进行,看起来成本比较高,但数据是排序的,所有的数据都是聚集存放,所以性能并不会受到影响,反而IO量会大大减少,提升性能

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • mysql 有4种不同的索引

    主键索引(PRIMARY) 数据列不允许重复,不允许为NULL,一个表只能有一个主键 唯一索引(UNIQUE) 数据列不允许重复,允许为NULL值,一个表允许...

    用户7737280
  • 索引的数据结构:hash、二叉树、B树

    hash:使用存储在内存中的内容来创建表,而且数据全部存放在内存中。缺点:hash冲突–扰动函数 1.Hash存储需将所有的数据文件添加到内存中,比较浪费内存...

    用户7737280
  • synchronized三种使用方式

    修饰静态方法: 也就是给当前类加锁,会作用于类的所有对象实例,因为静态成员不属于任何一个实例对象,是类成员( static 表明这是该类的一个静态资源,不管...

    用户7737280
  • Oracle 索引的分类

    看到 itpub 论坛上的一个帖子,对 Oracle 的索引分类总结得言简意赅,于是收藏过来。又补充了一点RAC用到的反向索引的东西。 逻辑上:  Single...

    用户1148526
  • 程序员硬核“年终大扫除”,清理了数据库 70GB 空间

    【导语】春节将至,俗话说“腊月二十四,掸尘扫房子”,很多人会在腊月二十四给家里做大扫除迎新春。

    AI科技大本营
  • ​打工人必备:详解MySQL索引类型和索引优点

    索引是存储引擎用于快速查找记录的一种数据结构。因此良好的性能非常关键。尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要。在数据量较小且负载较低时,不恰当...

    大数据真好玩
  • MySQL索引类型

    cwl_java
  • 面试官:谈谈你对mysql索引的认识?

    大家好,我渣渣烟。我曾经写过一篇《面试官:讲讲mysql表设计要注意啥》,当时写完后,似乎效果还行!

    Java3y
  • 【116期】MySQL索引优缺点、何时需要/不需要创建索引、索引及sql语句的优化

    索引是对数据库表中的一列或多列值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息。

    良月柒
  • 面试官:谈谈你对 MySQL 索引的认识?

    大家好,我渣渣烟。我曾经写过一篇《面试官:讲讲mysql表设计要注意啥》,当时写完后,似乎效果还行!

    用户1516716

扫码关注云+社区

领取腾讯云代金券