mysql索引:密集索引和稀疏索引的区别
密集索引
定义:密集索引文件中的每个搜索码值都对应一个索引值。
特点:
- B+树叶子节点保存的不仅仅是键值,还保存了该行的其他列的信息
- 密集索引决定了表的物理排列顺序,所以一个表只能有且仅有一个密集索引
MySQL数据库中,InnoDB定义密集索引:
注意:一般InnoDB的稀疏索引,存储的是主键信息
InnoDB文件存储方式:索引和数据存储在一个.ibd
文件中
稀疏索引
定义:稀疏索引文件只为索引码的某些值建立索引项
特点:B+树叶子节点保存的是键位信息和该行数据的地址,或保存的是键位信息和主键
MySQL数据库中:
不论是什么索引,MyISAM中,都是稀疏索引
注意:一般MyISAM的稀疏索引,存储的是行的地址值
MyISAM引擎的文件存储方式:索引和数据分别存放,索引存放在.MYI
文件下,数据存放在.MYD
文件项