2020年3月11日 作者 zeroheart

聚簇索引和非聚簇索引

聚簇索引可以直接获取数据,非聚簇索引需要先找到主键,在根据主键找到数据。

可以简单理解为主键产生的索引,是聚簇索引,其他是非聚簇

如果用主键查询,直接查到数据,如果用非主键查询,先查到主键,在获取数据。

select name from table where id = 1;

select birthday from table where name = ‘xx’;

通过建立覆盖索引(birthday,name),择可以根据name直接查询出birthday,不必在找到主键。

一个表只能有一个聚簇索引,在innoDB中,默认主键为聚簇索引,没有设置主键会生成隐式6个字节的id的聚簇索引。

非聚簇索引中,包含主键列的内容,索引主键列的大小也一定程度影响索引的大小,可以尽量设置小一些。