数据库索引学习

1. 数据库索引概念

  数据库索引是对数据库中的表一列或者多列进行排序的存储结构

  代价: 

    ① 增加了数据库的存储空间

    ② 在插入和修改数据时要花费较多的时间(因为索引也要随之变动)

2. Innodb 索引的分类( 聚簇索引和非聚簇索引)

  参考链接:https://www.cnblogs.com/qlqwjy/p/7770580.html

  <1> 聚簇索引 

    概念:对数据重新组织按照指定的一个或者多列排序

    特点:索引和数据存储在一起,找到了索引也就找到了数据

      表数据按照索引的顺序来存储的,也就是说索引项的顺序与表中记录的物理顺序一致。

      对于聚集索引,叶子结点即存储了真实的数据行,不再有另外单独的数据页。 

      在一张表上最多只能创建一个聚集索引,因为真实数据的物理顺序只能有一种。

    叶子节点: 主键值 事物id 回滚指针(用于事物和mvcc)  余下的列 (存储了真实的数据)

  <2> 非聚簇索引(二级索引)

    概念: 加快对表中记录的查找或排序。索引顺序与数据物理排列顺序无关。

    特点: 非聚簇索引的叶节点仍然是索引节点,并保留一个链接指向对应数据块

    叶子节点:key字段 主键值(叶结点包含索引字段值及指向数据页数据行的逻辑指针,)

    

      

    

    

    

原文地址:https://www.cnblogs.com/shmily3929/p/11572617.html