今天我们介绍在Oralce中用的比较多的两种表:堆组织表和索引组织表
堆组织表
应该用99%的情况下使用的可能都是堆组织表。在调用CREATE TABLE语句的时候默认创建的就是堆组织表。
例如:
CREATE TABLE T {
X INT
y date
z clob
}
堆实际上就是一个很大的空间、磁盘或者内存区,会以一种随机的方式管理。数据会挡在最合适的地方而不是以某种特定的顺序来放置。
在全表扫描的时候,会按命中的顺序来获取数据,而不是以插入的顺序来获取数据。所以如果想要以顺序的方式,需要添加ORDER BY
索引组织表
索引组织表(IOT)就是存储在索引中的表,存在堆中的表时无序的,但是IOT中存储的数据是以主键存储和排序的。
那么什么样的表时索引组织表呢,我们下面来看一个例子:
如果我们创建了一个完全由主键构成的表:
CREATE TABLE keywords{
word varchar2(50