前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Oracle Concept》第三章 - 4

《Oracle Concept》第三章 - 4

作者头像
bisal
发布2019-06-11 11:02:59
3370
发布2019-06-11 11:02:59
举报
文章被收录于专栏:bisal的个人杂货铺

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1443858

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

B树索引

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

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

分支块和叶子块

一个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年06月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档