1. 数据库索引概念
数据库索引是对数据库中的表一列或者多列进行排序的存储结构
代价:
① 增加了数据库的存储空间
② 在插入和修改数据时要花费较多的时间(因为索引也要随之变动)
2. Innodb 索引的分类( 聚簇索引和非聚簇索引)
参考链接:https://www.cnblogs.com/qlqwjy/p/7770580.html
<1> 聚簇索引
概念:对数据重新组织按照指定的一个或者多列排序
特点:索引和数据存储在一起,找到了索引也就找到了数据
表数据按照索引的顺序来存储的,也就是说索引项的顺序与表中记录的物理顺序一致。
对于聚集索引,叶子结点即存储了真实的数据行,不再有另外单独的数据页。
在一张表上最多只能创建一个聚集索引,因为真实数据的物理顺序只能有一种。
叶子节点: 主键值 事物id 回滚指针(用于事物和mvcc) 余下的列 (存储了真实的数据)
<2> 非聚簇索引(二级索引)
概念: 加快对表中记录的查找或排序。索引顺序与数据物理排列顺序无关。
特点: 非聚簇索引的叶节点仍然是索引节点,并保留一个链接指向对应数据块。
叶子节点:key字段 主键值(叶结点包含索引字段值及指向数据页数据行的逻辑指针,)