索引是怎么工作的

作者: 情感专区  发布:2019-10-22

怀着绿色的急切讲述我执着的过往你总是笑容满面奈何没有言语

图片 1

所有的叶开始凋零你编织了小舟片片乘载着我的叶我的希望划向永远的夜

相关于数据库表索引,一直没有仔细阅读相关的资料。上周,在网上看到一篇博客,看Sybase官方手册学索引工作原理,其总结的是SAP ASEv12,读后收获不小,特地也找了下SAP ASEv16.0的Performance and Tuning Series- Locking and Concurrency Control文档,试着翻译了一部分,以备学习。

我想你传达我白色的梦想前方的坎坷只是太多太少穿刺我的脚掌我向你投以亲切的拥抱你引燃了我的灵魂 我的残躯在黑夜里照亮 将行未行的路

7 索引

索引是用于提升数据库性能的重要设计要素,它可以明显地加速数据检索过程(增删改查):

  • 避免表扫描。
  • 不访问数据行,而从非聚集索引中获取数据。
  • 聚集索引有助于随机插入数据从而避免在表的最后页插入。
  • 如果索引的顺序匹配了order by子句的列顺序,索引有助于避免排序。
  • 对于大多数分区域的表,用户可以使用一个覆盖全表的带有索引树的全局索引,或者创建多个带有索引树的本地索引,其中每一个索引覆盖表的一个分区。

虽然索引加速了数据检索,但是它们也可能减慢数据的修改,因为对于大多数据修改需索引更新。优化索引有必要理解如下内容:

  • 对于不同索引表类型的查询行为。例如,无索引的堆表,带有聚集索引的表及带有非聚集索引的表。
  • 混合查询。
  • 在分区表上的本地和全局索引的彼此相对优势。
  • SAP ASE的优化器。

我茫茫无际无終不知道路有多长途中是否有山脉阻挡巨石能否压断脊梁我向往天空的蓝只也不愿脱去身穿的衣服你为我指引方向引我去你退避的地方

7.1 索引类型

SAP ASE 提供的两种通用索引类型:

  • 聚集索引,数据在物理上依照索引键的顺序存储:
  • 对于全页锁类型(allpages-locked,事务处理时,既锁数据页,又锁索引页,且只有表锁和页锁。)的表,在页上的行依照索引键的顺序保存,并且页也依照索引键的顺序链接。
  • 对于数据锁类型(data-only-locked,事务处理时,只锁数据页,不锁索引页,具有表锁、页锁和行锁)的表,索引被用于指引存储在行和页上的数据,但严格的键顺序不被维护。
  • 非聚集索引,表上的数据存储顺序与索引的键无关。

用户只能在一个表或分区上创建一个聚集索引,因为只可能有一种数据行的顺序。用户在每个表上可以创建249个费聚集索引。
没有聚集索引的表也叫做堆。这样的表中的行没有指定顺序,所有新增加的行都被增加到表的最后。
基于函数的索引是一种非聚集索引,它使用一个或多个表达式作为索引的键。

我害怕黑暗居落的野蛮那路没有你的身影仅留我长长的寂寥

7.1.1 索引页

索引实体在索引页上作为行保存,其格式近似于在数据页上数据行。索引实体保存健值和指针,这些指针指向的是更下一级的索引、数据页、或者单独的数据行。
SAP ASE 使用B-tree索引,在其索引结构中每一节点都可以有多个子节点。
索引实体通常比数据页中的数据行更小,并且索引页也显然比数据页排布地更紧密。假设数据行有 200 bytes(包括行的基本开销),在页大小为2K的服务器上,每一页就有10行。然而同样页大小(2K)的条件下,一个基于15-byte行域大小的索引在每个索引页上有会有100行(每个行指针需要 4-9 bytes,依赖于其索引类型和索引等级)。
索引可以有多个等级:

  • 根等级(Root level)
  • 叶等级(Leaf level)
  • 中间等级(Intermediate level)

本文由金沙贵宾会2999发布于情感专区,转载请注明出处:索引是怎么工作的

关键词:

上一篇:夏之歌金沙贵宾会2999
下一篇:野蔷薇