range分区 、 list分区 、 hash分区 、组合分区。
range分区:以列的值的范围来做为分区的划分条件,将记录存放到列值所在的range分区中。
list分区:也是以列的值作为分区条件。
hash分区:是以分区列的hash值自动分配。
range-list分区 :对字段先做范围(range)分区,再根据范围分区中的字段值(list)分区。
range-hash分区:对字段先做范围(range)分区,再根据范围分区中的字段值的hash值(hash)分区。
1、range分区:时间 time 小于'2023-10-1'的数据放在 partitionp1 中。(列的值得范围)
createtable tablename (id number, time date) partition by range (time)
(
partitionp1 values less than (to_date('2023-10-1', 'yyyy-mm-dd')),
partitionp2 values less than (to_date('2023-11-1', 'yyyy-mm-dd')),
partitionp3 values less than (to_date('2023-12-1', 'yyyy-mm-dd')),
partitionp4 values less than (maxvalue)
);
2、list分区:以 state列的值 作为分区条件
CREATE TABLE employees (employee_id NUMBER,first_name VARCHAR2(50), last_name VARCHAR2(50),email VARCHAR2(100), phone_number VARCHAR2(20), hire_date DATE,state VARCHAR2(50)
)
PARTITION BY LIST (state) (
PARTITION east VALUES ('New York', 'Virginia', 'Massachusetts'),
PARTITION west VALUES ('California', 'Oregon', 'Washington'),
PARTITION south VALUES ('Texas', 'Florida'),
PARTITION north VALUES ('Alaska', 'Minnesota', 'New Jersey'),
PARTITION other VALUES (DEFAULT)
);
3、hash分区:以 internal_key值 的hash值 作为分区条件。
4、组合分区:range-list分区 、 range-hash分区
range-list分区 :对字段先做范围(range)分区,再根据范围分区中的字段值(list)分区。
range-hash分区:对字段先做范围(range)分区,再根据范围分区中的字段值的hash值(hash)分区。