密集索引和稀疏索引的区别有:
- 密集索引文件中的每个搜索码值都对应一个索引值。
- 稀疏索引文件只为索引码的某些值建立索引项。
然后我们举一个密集索引和稀疏索引的例子:
Mysql中有两种存储引擎,MAISAM和INNODB。
在MAISAM中,
不管是主键索引,唯一键索引还是普通索引,其索引都属于稀疏索引。
在InnoDB中,
若一个主键被定义,则主键则作为密集索引。
若没有主键被定义,该表的第一个唯一非空索引则作为密集索引。
若不满足以上条件,INNODB内部会生成一个隐藏主键(密集索引)。
非主键索引存储相关键位和其对应的主键值,包含两次查找。