Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

聚簇索引 和 非聚簇索引

  • 聚簇索引

    • InnoDB采用
      • 将 主键 组织到一棵主键B+树中,叶子节点直接存储行数据
      • 将 其余索引列 组织到一颗辅助B+树中,叶子节点存储主键
    • 两种查询
      • 若对 主键 进行条件搜索WHERE id = 14
        • 则按照B+树的检索算法即可查找到对应的叶节点,之后获得行数据
      • 若对 name列 进行条件搜索,则需要两个步骤
        • 第一步:在辅助B+树中检索name,到达其叶子节点获取对应的主键
        • 第二步:使用主键在主键B+树中再执行一次检索,最终到达叶子节点即可获取整行数据
    • 好处
      • 在移动行时无须更新辅助B+树中的叶子节点,因为主键是不变的
  • 非聚簇索引

    • MyISM采用
      • 主键B+树辅助B+树节点的结构完全一致,只是存储的内容不同而已
      • 两颗B+树的叶子节点都使用一个地址指向真正的表数据
    • 只有一种查询
      • 进行条件搜索
        • 第一步:在对应B+树中检索,到达其叶子节点获取数据的地址
        • 第二步:使用地址获取行数据