攻略1-3 匹配表类型与业务需求

问题描述

你刚开始使用Oracle数据库,并且已经学习了一些关于可用的各种表类型的知识。例如,可以在堆组织表、索引组织表等之间作出选择。你想要创建一个数据库应用,并且需要确定它所使用的表类型。

解决方案

Oracle提供了非常丰富的表类型,默认的是堆组织表。对于大多数的应用,堆组织表是一种高效的数据存取结构;但是,你也需要了解其他的表类型,并且还应该知道在什么情况下,应该使用哪种类型的表。表1-1描述了各种表类型及其适用的场景。

enter image description here

工作原理

在大多数场景下,堆组织表就能够满足你的需求。这种Oracle表类型已被证明适用于各种数据库环境。如果数据库设计得当(标准化结构),并结合适当的索引和约束,就将会得到一个性能优良并可维护的系统。

通常来说,大多数的表都是堆组织表。但是,如果你需要利用一些非堆特性的优势(并且确信能够得到这些好处),那么当然应该去尝试。例如,Oracle分区就是创建大表和索引的一种可扩展方法。物化视图对于聚集和复制数据来说是非常有效的特性。当表中大多数列都是主键的一部分时(例如多对多关系中的交叉表),索引组织表是一种很高效的结构。

警告 不应该仅仅因为你觉得最近刚听说的某种新特性很酷,而选用某种表类型。有时候人们学到一种特性,并决定实现它,而并没有首先了解这种特性的性能优缺点以及维护成本。首先应该测试并验证这个特性具有可靠的性能优势。

目录