oracle表分區
oracle允許用戶對錶進行進一步規劃,即對錶進行進一步拆分,將表分成若干個邏輯部分,滅個不妨稱其爲表分區
範圍分區:
根據表中列值的範圍進行分區
語法:Partition by range(字段名)(
Partition 分區名 values less than (60), --60以下
Partition 分區名 values less than (75), --60~75
Partition 分區名 values less than (85), --75~85
Partition 分區名 values less than (maxvalue) --85~max
);
散列分區:
通過制定分區編號來均勻的分佈數據的方法
通過Hash函數(oracle系統提供)將數據映射到相應的分區上。
語法:Partition by hash(字段名)(
Partition 分區名,
Partition 分區名
);
複合分區:
先對數據進行範圍分區,然後再每個子分區內進行散列分區。
語法:Partition by range(字段名)
Subpartition by hash(字段名)(
Partition p1 values less than(10),
(subpartition sp1,subpartition sp2),
Partition p2 values less than(20),
(subpartition sp3,subpartition sp4)
);
這樣子就分成了4個分區
列表分區:
允許用戶明確的控制行到分區的映射
允許按自然方式對無序或不相關的數據進行分組和組織
語法:
Partition by list(字段名)(
Partition 分區名 values('值','值','值')),
Partition 分區名 values('值')),
Partition 分區名 values('值','值'))
);
對分區中數據進行查詢時,可以指定查詢的分區,如:select * from student partition(p1);