oracle表的类型

来源:这里教程网 时间:2026-03-03 14:40:13 作者:
oracle中有99%以上的表都是堆组织表(heap organized table)。当我们默认执行 create  table 时,默认的表类型就是堆表。对于堆来说。我们可以理解为一个单纯的存储空间,我们将数据存放在堆里,他的存放是无序的,像一堆积木扔在口袋里一样。所以我们不能要求我们可以按照存放的次序拿到我们想要的数据,而是会按照无法预测的顺序读取出来。例如对堆表进行全表扫时,oracle会根据命中的次序来读取数据,而不会根据插入更新顺序来进行读取。这些数据将会被一种随机的方式来进行读取,并且读取顺序取决于其他因素,例如并行、优化器的不同等等。
还有一种类型表叫做索引组织表(IOT);就是存储在一个索引结构的表。IOT和堆表最大的区别就是,IOT的数据是按照逐渐顺序来进行存储和排放的。相对比于堆表,堆表在每次建表的时候,都需要预留足够的空间来使表来创建索引、主键等等。但是IOT不存在这种索引主键的开销,对于IOT来说,索引就是数据,数据就是索引。但是我们都知道索引是个复杂的数据结构,维护成本较高,所以堆组织表的效率会相对高出很多。‘
其他的类似于索引聚蔟表、散列聚蔟表。由于应用场景不是很多,知道有这个东西就可以了。

相关推荐