《Oracle Concept》第三章 - 4

背景:

按照《Oracle Conecpt》的结构一起了解Oracle数据库,这是学习Oracle从入门到精通的基础。


前言《Introduction to Oracle Database》的历史文章

《Oracle Concept》前言-12c内容补充

《Oracle Concept》前言介绍-7

《Oracle Concept》前言介绍-6

《Oracle Concept》前言介绍-5

《Oracle Concept》前言介绍-4

《Oracle Concept》前言介绍-3

《Oracle Concept》前言介绍-2

《Oracle Concept》前言介绍-1

《Oracle Conecpt》 - 目录结构

《Oracle Conecpt》 - 初步认识1


第二章《Tables and Table Clusters》 历史文章

《Oracle Concept》第二章 - 21 (12c内容补充)

《Oracle Concept》第二章 - 20 (12c内容补充)

《Oracle Concept》第二章 - 19

《Oracle Concept》第二章 - 18

《Oracle Concept》第二章 - 17

《Oracle Concept》第二章 - 16

《Oracle Concept》第二章 - 15

《Oracle Concept》第二章 - 14

《Oracle Concept》第二章 - 13

《Oracle Concept》第二章 - 12

《Oracle Concept》第二章 - 11

《Oracle Concept》第二章 - 10

《Oracle Concept》第二章 - 9

《Oracle Concept》第二章 - 8

《Oracle Concept》第二章 - 7

《Oracle Concept》第二章 - 6

《Oracle Concept》第二章 - 5

《Oracle Concept》第二章 - 4

《Oracle Concept》第二章 - 3

《Oracle Concept》第二章 - 2

《Oracle Concept》第二章 - 1


第三章《Indexes and Index-Organized Tables》历史文章:

《Oracle Concept》第三章 - 3

《Oracle Concept》第三章 - 2

《Oracle Concept》第三章 - 1


本文主题第三章《Indexes and Index-Organized Tables》 - Overview of Indexes。


B树索引

B树索引,是平衡树的缩写,他是数据库索引中最常用的一种类型。一个B树索引是一种将数值有序划分到不同范围的列表。通过将键值和一行或一定范围的行进行关联,B数能为这种范围检索提供极佳的查询性能,包括精确匹配和范围匹配两种检索方式。


下图(3-1)就是B树索引的结构。示例展示了department_id列上的索引,他是employees表的外键。

640?wx_fmt=png


分支块和叶子块

一个B树索引有两种类型的块:分支块用于检索,叶子块用于存储数值。B树索引上层的分支块会包含指向下层索引块的索引数据。在上图3-1种,根分支块含有0-40的项,他指向了下一层分支块最左侧的块。这个分支块包含了诸如0-10和11-19的项。这些项中的每一个都包含了落在这个范围内指向键值的叶子块。


B树索引是平衡的,因为所有的叶子块都会自动地存储在同一个深度下。因此,从索引中检索任何数据大约花费的时间都是相同的。索引的高度是指需要从根块到叶子块访问的数据块的个数。分支层级等于高度减1。在图3-1中,索引高度是3,分支层级是2。


分支块存储的是需要在两个键值间做权衡中最小的键值前缀。这种技术能让数据库在每个分支块上尽可能多地适应数据。分支块会包含一个指针,他指向包含键值的子块。键和指针的个数受数据块容量的限制。


叶子块则包含每一个被索引的数据值,以及用来定位真实行的rowid。每项会根据(key, rowid)排序。在一个叶子块中,每个键值和rowid都会关联他的左侧和右侧兄弟项。叶子块自己也会双向关联。在图3-1中,最左侧的叶子块(0-10)会关联到第二个叶子块(11-19)。


注意:

字符类型列的索引会基于数据库字符集中的字符二进制值进行排序。

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读