索引介绍

在 《MySQL-Notes/索引优化》一节中我们讨论了MySQL中索引的类型与使用,InnoDB使用了B+树索引模型,所以数据都是存储在B+树中的。每一个索引在InnoDB里面对应一棵B+树。索引类型分为主键索引(也被称为聚簇索引)和非主键索引,主键索引的叶子节点存的是整行数据,非主键索引的叶子节点内容是主键的值。在InnoDB里,非主键索引也被称为二级索引。

主键索引与非主键索引

  • 如果语句是 select _ from T where ID=500,即主键查询方式,则只需要搜索ID这棵B+树;
  • 如果语句是 select _ from T where k=5,即普通索引查询方式,则需要先搜索k索引树,得到ID的值为500,再到ID索引树搜索一次。这个过程称为回表。
  • 基于非主键索引的查询需要多扫描一棵索引树。因此,我们在应用中应该尽量使用主键查询

Links

上一页