美文网首页
Mysql | 索引(二)

Mysql | 索引(二)

作者: leafzl | 来源:发表于2019-01-09 06:49 被阅读95次

在满足语句需求的情况下, 尽量少地访问资源是数据库设计的重要原则之一。我们在使用数据库的时候,尤其是在设计表结构时,也要以减少资源消耗作为目标。
今天我整理了覆盖索引,前缀索引和索引下推的有关知识点。
覆盖索引
在讲覆盖索引时,先来讲讲主键索引和非主键索引。
主键索引的叶子节点存的是整行数据。在 InnoDB 里,主键索引也被称为聚簇索引(clustered index)。
非主键索引的叶子节点内容是主键的值。在 InnoDB 里,非主键索引也被称为二级索引(secondary index)。
主键索引和普通索引的查询有什么区别
语句 select * from T where ID=500,即主键查询方式,则只需要搜索 ID 这棵 B+ 树;
语句是 select * from T where k=5,即普通索引查询方式,则需要先搜索 k 索引树,得到 ID 的值为 500,再到 ID 索引树搜索一次。这个过程称为回表。
如果语句select ID from T where k=5,则只需搜索k索引树,无需在去ID索引树搜索一遍,这就叫做索引覆盖。
覆盖索引可以减少树的搜索次数,显著提升查询性能,所以使用覆盖索引是一个常用的性能优化手段。

最左前缀索引
索引项是按照索引定义里面出现的字段顺序排序的,查询条件,从左到右,依次出现联合索引。
所以在建立联合索引的时候,如何安排索引内的字段顺序这门大学问。遵从下面2个原则:
第一原则是,如果通过调整顺序,可以少维护一个索引,那么这个顺序往往就是需要优先考虑采用的。
第二原则是,如果都要多维护一个索引,那就考虑空间。

索引下推
索引下推是新学到的知识点,我还没去做测试过,
在这里我先说一下结论:5.6版本以后,可以在索引遍历过程中,对索引中包含的字段先做判断,直接过滤掉不满足条件的记录,减少回表次数。
今天就写在这里。


Mysql | 索引(二)

相关文章

  • mysql索引总结----mysql 索引类型以及创建(转载)

    一、索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度 二、索引的...

  • MySQL索引及查询优化书目录

    MySQL索引的原理之索引目的 MySQL索引的原理之索引原理 MySQL索引的原理之索引的类型 MySQL索引的...

  • MySQL索引和explain

    一,MySQL中的索引 二,explain

  • mysql

    一 mysql基础 二 mysql索引 什么是索引 索引是一种数据结构,解决查询语句中where和order by...

  • 高性能的索引策略

    MySQL查询基础-查询执行过程 MySQL聚簇索引 MySQL覆盖索引 MySQL索引扫描排序 MySQL冗余和...

  • 99 MySQL性能实战优化

    mysql 性能优化 一 MySQL架构与执行流程原理 二 MySQL 索引底层实现原理 三 MYSQL事务...

  • MySQL,必须掌握的6个知识点

    目录 一、索引B+ Tree 原理 MySQL 索引 索引优化 索引的优点 索引的使用条件 二、查询性能优化使用 ...

  • Mysql索引不会怎么办?6000字长文教会你

    MySQL的索引入门真的很难吗 MySQL的索引入门真的很难吗索引存在的意义索引的类型哈希索引二叉树跳表B+Tre...

  • MySQL索引的使用

    MySQL索引 MySQL索引可以快速提高MySQL的检索速度。索引分单列索引和组合索引单列索引:即一个索引只包含...

  • Mysql的原理解析

    文章目录 一、mysql数据结构 二、mysql 三层架构 三、聚集索引和非聚集索引 四、为什么使用索引可以提高查...

网友评论

      本文标题:Mysql | 索引(二)

      本文链接:https://www.haomeiwen.com/subject/xizirqtx.html