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

《Oracle Concept》第二章 - 16

作者头像
bisal
发布2019-03-15 11:39:46
3220
发布2019-03-15 11:39:46
举报

背景:

按照《Oracle Conecpt》的结构一起了解Oracle数据库,这是学习Oracle从入门到精通的基础。 本文主题:第二章《Tables and Table Clusters》 - Overview of Tables。

索引聚簇概要

索引的聚簇是一种是用索引来定位数据的表簇。聚簇索引是一种基于簇键的B树索引。必须在向聚簇表插入任何行之前创建聚簇索引。

假设你用聚簇键department_id创建了聚簇表employees_department_cluster,如下所示。因为未指定HASHKEYS子句,这个剧簇就是索引聚簇。然后,在这个聚簇键上创建一个名为idx_emp_dept_cluster的索引,

640?wx_fmt=png
640?wx_fmt=png

可以在聚簇之上创建employees和departments表,指定department_id列作为聚簇键,如下所示,(括号中的省略号是列的位置)

640?wx_fmt=png
640?wx_fmt=png

此时,就可以向employees和departments表插入数据了。数据库会在物理层面上将来自于employees和departments表的每个department存储在同一个数据块中。数据库会以堆结构来存储行,使用索引定位这些数据。

下图展示了employees_departments_cluster表簇,他包含了employees和departments表。数据库会将department_id=20的雇员信息存储在一起,将department_id=110的雇员信息存储在一起,等等。如果没对表聚簇,数据库就无法保证相关的行能存储在一起,

640?wx_fmt=png
640?wx_fmt=png

B树聚簇索引会将聚簇键的值和包含数据的数据库块地址(database block address,DBA)进行关联。例如,键值为20的索引项会展示department_id=20的雇员数据所在的块地址,

20,AADAAAA9d

聚簇索引会被独立管理,就像非聚簇表的索引,能存储在和表簇不同的表空间中。

参考:

“Overview of Indexes”章节。

《Oracle Database Administrator's Guide》了解如何创建和管理索引聚簇。

《Oracle Database SQL Language Reference》了解CREATE CLUSTER的语法和语义。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年03月07日,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档