一、概念

  聚簇索引:在主索引的文件上直接存放该行数据的索引储存结构称为聚簇索引,次索引指向对主索引的引用。(innodb)

  非聚簇索引:主索引和次索引都指向物理行(磁盘位置).

 

二、INNODB和MYISAM的主键索引与二级(次)索引的对比:

  

 

 

  总结:InnoDB的主索引的节点与数据放在一起,次索引的节点存放的是主键的位置。myisam的主索引和次索引都指向该数据在磁盘的位置。

  注意: innodb来说,

  1: 主键索引 既存储索引值,又在叶子中存储行的数据

  2: 如果没有主键, 则会Unique key做主键

  3: 如果没有unique,则系统生成一个内部的rowid做主键.

  4: innodb,主键的索引结构中,既存储了主键值,又存储了行数据,这种结构称为”聚簇索引”

 

三、聚簇索引 优劣势

  优势: 根据主键查询条目比较少时,不用回行(数据就在主键节点下)

  劣势: 如果碰到不规则数据插入时,造成频繁的页分裂.

 

四、聚簇索引的页分裂 

 

 

高性能索引策略:

  对于innodb而言,因为节点下有数据文件,因此节点的分裂将会比较慢.

  对于innodb的主键,尽量用整型,而且是递增的整型.

  如果是无规律的数据,将会产生的页的分裂,影响速度.

 

额外知识点:

 

索引覆盖:指如果查询的列恰好是索引的一部分,那么查询只需要在索引文件上进行,不需要回行到磁盘再找数据,称为”索引覆盖”。

 

特点:查询速度非常快,

 


posted on 2020-12-10 11:30  鸥海  阅读(212)  评论(0编辑  收藏  举报