自己搭建一个网站优化关键词排名
1、堆组织表,就是普通的标准数据库表,数据以堆的方式管理。堆其实就是一个很大的空间,会一种随机的方式管理数据,数据会放在合适的地方。
例如建立一张表
create table t(id int,name varchar2(20));
插入三条记录
insert into t values(1,'a');
insert into t values(2,'b');
insert into t values(3,'c');
之后删除记录b;
delete from t where id=2;
再插入记录d
insert into t(4,'d');
d记录就可能放在记录b的位置。
2、索引组织表,存储在一个索引结构的表。表中的数据按主键存储和排序。如果只通过主键访问一个表,就可以考虑IOT表。父子关系表中,如果是一对多关系,经常根据父表查找子表,子表可以考虑IOT表。
3、索引聚簇表,聚簇是指一个或多个表的组。有相同聚簇值的行会相邻的物理存储。oracle数据字典就大量使用这种表,这样可以将表、字典信息存储在一起,提高访问效率。如果数据只要用于读,需要频繁地把一些表的信息连结在一起访问,可以考虑索引聚簇表。但注意:聚簇会导致dml、全表扫描的效率底下,还有就是索引聚簇表是不能分区的。
4、散列聚簇表,类似聚簇表,不使用B*树索引定位数据,而使用内部函数或者自定义函数进行散列,然后使用这个散列值得到数据在磁盘上的位置,散列聚簇是一个高cup、低IO操作,如果经常按hashkey查找数据,可以考虑散列聚簇表。
5、有序散列聚簇表,这种表是10g中新增的,同时兼有索引聚簇表、散列聚簇表的一些特性,使用这个结构是应该考虑散列聚簇表同样的问题,同时要考虑数据的有序到达。
6、嵌套表,嵌套表与传统的父子表模型很相似,但其里面的数据元素是一个无序集,所有数据类型必须相同,很少用嵌套表来存储实体数据,大多数在Pl/Sql代码中使用。
7、临时表,临时表用来保存事务、会话中间结果集。临时表值对当前会话可见,可以创建基于会话的临时表,也可以创建基于事务的临时表。
1)、基于会话的临时表:
2)、基于事务的临时表:
如果应用中需要临时存储一个行集合供其他表处理,可以考虑临时表。
8、对象表,对象表用于实现对象关系模型,很少用来存储数据,可以在PL/SQL用来得到对象关系组件。
9、外部表,外部表可以把一个操作系统文件当作一个只读的数据库表。