Oracle中的表概览

Oracle数据库中的表包括关系型表、对象型表、堆表、索引组织表、外部表、压缩表、表集群和临时表。关系型表是最常见类型,对象型表支持面向对象特性。堆表数据无序,而索引组织表按主键排序以提升性能。外部表用于访问非关系型数据,压缩表在不影响应用的情况下节省存储空间。表集群将相关数据存储在同一块中,临时表用于短期存储transaction或session中的数据,而区块链表是针对区块链应用设计的。

表是Oracle数据库中数据组织的基本单元。Oracle支持多种表,从不同的角度可划分为多种类型:

关系型表(Relational tables)和对象型表(Object tables)

关系型表是最常见的表类型。关系型表是一张二维表,其中“关系”是指不同字段值组合在一起构成的关系,以及表与表之间的关系(也就是外键)。

熟悉Java等面向对象语言的同学应该对“对象”这个概念很熟悉。对象型表是指表中的数据支持封装,继承等面向对象特性的那些表。

堆表(heap-organized table)和索引组织的表(index-organized table)

堆表中的每行数据是无序存储的。CREATE TABLE语句默认创建一个heap-organized table。

一个index-organized table中的行数据则按照primary key的值来排序。对于一些应用程序来说,使用index-organized table可以提高磁盘使用效率和性能。

外部表

当Oracle数据库应用程序必须访问非关系型数据(例如那些存储在HDFS或一个NOSQL数据库中的数据)时,外部表就非常有用了。

由于外部表的数据存储在数据库之外,因此数据库需要存储相关的metadata,才能知道如何访问这些数据。另外由于数据存储在Oracle数据库之外,Oracle并不拥有这些数据,因此不能修改或删除外部表中的数据。

压缩表

可以将堆表中的数据以压缩的形式存储,且这对于那些使用数据的应用程序来说是透明的。

表压缩的工作方式是,将在单独的data block中的那些重复数据压缩。一个block中的所有行和列的重复值仅会在block开头存储一次,而在重复值的原本所在位置用一个short reference引用block开头的值。因此当一个block中的重复值越多,则压缩率越高。
 
Table cluster

一个table cluster由一组表组成,这些表共享列并且将相关的数据存储在相同的data block中。当表是clustered,一个data block可以存储来自多个表的行。

临时表

临时表用于存储那些只需要在a transaction或a session使用的临时的数据。例如我们写一个很长的存储过程,会在sp的前半部分产生一些数据,并在sp的后半部分使用这些数据,且使用完后就不再需要这些数据了。这时就可以使用临时表,保证在a transaction或a session结束后,临时数据会被清理掉。

区块链表Blockchain tables

区块链表是Oracle新引入的,专门用于区块链应用程序的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值