zoukankan      html  css  js  c++  java
  • 聚集索引和非聚集索引

    聚集索引中,数据记录的组织是按照索引中的键值连续存储的,即具有相同键值的记录存储在一起,
    非聚集索引则记录的存储是随意的。

    比如有模式R(A,B),数据记录有{(1,1), (2,2),(3,2), (4,1),(5,3),(6,2), (7,1)},
    如果在B属性上创建聚集索引,则记录按照如下方式组织:
      (1,1), (4,1), (7,1),(2,2),(3,2), (6,2), (5,3),
    索引项 1 1 1 2 2 2 3
    指针 0 3 6
    索引结构为<索引项,指针>,则索引内容为<1,0>,<2,3>,<3,6>
    这样查询B=2是就可以连续地将记录(2,2),(3,2), (6,2)取得

    而如果是非聚集索引则不是按照索引属性排列元组,假设按上面的的顺序排列
    (1,1), (2,2),(3,2), (4,1),(5,3),(6,2), (7,1)
    索引项 1 2 2 1 3 2 1
    指针们 0 1 2 3 4 5 6
    索引内容为<1,{0,3,6}>,<2,{1,2,5}>,<3,{4}>
    查询是需要根据指针地址逐一取出记录
  • 相关阅读:
    ZOJ Bookcase
    C*++ Calculations
    STL <cctype>
    线段树单点更新+区间更新
    ZOJ Supermarket
    STL <cassert>
    算法导论<二>
    MV Maker [DP]
    LIS 最长有序子序列(递增/递减/非递增/非递减)
    LIS
  • 原文地址:https://www.cnblogs.com/la-isla-bonita/p/3630436.html
Copyright © 2011-2022 走看看