ORACLE 五種表的優缺點總結:
1,普通表(heap table):適合大部分設計場景,有優點也有缺點。
優點:
a,語法簡單方便
b,適合大部分場景
缺點:
a,更新日志開銷較大
b,Delete無法釋放空間(HWM High Water Mark不下降)
c,表記錄太大檢索太慢
d,索引回表讀開銷很大
e,即便有序插入,也很難保證有序讀出
2,全局臨時表:適合接口表設計
優點:
a,高效刪除
b,產生很少的日志
c,不同的SESSION獨立,不產生鎖
缺點:
a,語法特別
b,數據無法得到有效的保護
全局臨時表分兩類:
一個是基於會話的全局臨時表(on commit preserve rows),一個是基於事務的全局臨時表(on commit delete rows),下面就是創建的例子:
create global temporary table T_TMP_SESSION on commit preserve rows as select * from dba_objects;
create global temporary table T_TMP_TRANSACTION on commit delete rows as select * from dba_objects;
3,分區表:尤其適合日志表,非常大的表
優點:
a,有效的分區消除 (分區裁剪)
b,高效的記錄清理(即可以對某一個分區進行truncate)
c,高效的記錄轉移(分區交換)
缺點:
a,語法復雜
b,分區過多對系統有一定的影響
4,索引組織表:適合極少更新的表
優點:
a,表就是索引,可以避免回表
缺點:
a,語法復雜
b,更新開銷較大
5,蔟表:使用頻繁關聯查詢的多表
優點:
a,可以減少或避免排序
缺點:
a,語法復雜
b,表更新開銷大