区别

  • 密集索引文件中的每个搜索码值都对应一个索引值
  • 稀疏索引文件只为索引码的某些值建立索引项 

 

密集索引与稀疏索引区别 和聚簇索引和辅助索引联系

  • 密集索引:叶子节点保存的不只是键值,还保存了位于同一行记录里的其他列的信息,由于密集索引决定了表的物理排列顺序,一个表只有一个物理排列顺序,所以一个表只能创建一个密集索引
  • 稀疏索引:叶子节点仅保存了键位信息以及该行数据的地址,有的稀疏索引只保存了键位信息机器主键
  1. mysam存储引擎,不管是主键索引,唯一键索引还是普通索引都是稀疏索引
  2. innodb存储引擎:有且只有一个密集索引。密集索引的选取规则如下:

  密集索引与稀疏索引区别 和聚簇索引和辅助索引联系

密集索引与稀疏索引区别 和聚簇索引和辅助索引联系

主索引:

将主文件分块,每一块对应一个索引项。每个存储快的第一条记录,又称为锚记录。

主索引是按照索引字段值进行排序的一个有序文件,通常建立在有序文件的基于主码的排序字段上。

主索引是稀疏索引

辅助索引:

定义:定义在主文件的任意一个或者多个非排序字段上的辅助存储结构。

辅助索引通常对字段(该字段非排序)的每一个不同值有一个索引项。

字段值不唯一,引入中间桶保存指针列表。

辅助索引是稠密索引

二者差别

  • 一个主文件仅有一个主索引,但可以有多个辅助索引;
  • 主索引通常建立在主码/排序码上面;
  • 可以利用主索引重新组织主文件数据,辅助索引不可以。

相关文章: