5.3 聚簇索引 非聚簇索引 覆盖索引

2019-09-29  本文已影响0人  愤愤的有痣青年

聚簇索引

聚簇索引是指索引的叶子节点中存储了整行数据,因此在查询时可以直接通过该索引一次得到该行的所有数据.一般聚簇索引的前提是:

每个表中都有一个聚簇索引,一般为该表主键,若该表主键没有显示指定,则其为数据库内置的一个主键.

表的数据都是存储在聚簇索引中的.

主键

对于主键,在设计的时候,需要注意一下几点:

非聚簇索引

一个表中除了聚簇索引外都是非聚簇索引(好像有点废话),其在查询时一般会通过索引得到主键的值,然后再拿主键的值去查询聚簇索引得到最终的数据行,这样的查询叫二级索引,或者也叫回表.但是也有例外,如下面的覆盖查询中的情况就不会进行回表.

覆盖索引

覆盖索引是指,在表中有一个联合索引,若查询时,查询时select的字段为该索引的一个项,且where的也是该索引的一个项,此时就可以通过索引一次性拿到查询结果.

例如 Student表中有字段numbername,且这两个字段组成联合索引key(number,name),则使用如下查询将使用覆盖索引查询:
select name from Student where number=1

上一篇 下一篇

猜你喜欢

热点阅读