文章目录一、范围分区二、散列分区三、列表分区四、复合分区(范围-散列分区,范围-列表分区)五、表分区查询一、范围分区 范围分区是根据数据库表中某一字段的值的范围来划分分区,例如:user表过于庞大时,将user表根据一周7天分成7个分区。
代码语言:javascript代码运行次数:0运行复制create table user(
user_id varchar2(20 char),
user_name varchar2(50 char)
part_flag NUMBER(1)
)
tablespace user_data
partition by range(part_flag)(
partition user_p1 values less than(2) tablespace user_data,
partition user_p2 values less than(3) tablespace user_data,
partition user_p3 values less than(4) tablespace user_data,
partition user_p4 values less than(5) tablespace user_data,
partition user_p5 values less than(6) tablespace user_data,
partition user_p6 values less than(7) tablespace user_data,
partition user_p7 values less than(8) tablespace user_data
);二、散列分区 散列分区是根据字段的hash值进行均匀分布,尽可能的实现各分区所散列的数据相等。
代码语言:javascript代码运行次数:0运行复制create table user(
user_id varchar2(20 char),
user_name varchar2(50 char)
part_flag NUMBER(1)
)
partition by hash(user_id)
(
partition p1,
partition p2,
partition p3
)三、列表分区 列表分区明确指定了根据某字段的某个具体值进行分区,而不是像范围分区那样根据字段的值范围来划分的(不支持多列)。
代码语言:javascript代码运行次数:0运行复制create table user(
user_id varchar2(20 char),
user_name varchar2(50 char),
part_flag NUMBER(1)
)
partition by list(user_id)
(
partition A01 values('01'),
partition A02 values('02'),
partition A03 values('03')
)四、复合分区(范围-散列分区,范围-列表分区) 列表分区不支持多列,但是范围分区和哈希分区支持多列。
代码语言:javascript代码运行次数:0运行复制create table user(
user_id varchar2(20 char),
user_name varchar2(50 char),
part_flag NUMBER(1)
)
partition by range(part_flag)
subpartition by hash(user_id,user_name)
(
partition p1 values less than(50) (
subpartition sp1, subpartition sp2
),
partition p2 values less than(100) (
subpartition sp3, subpartition sp4
)
)代码语言:javascript代码运行次数:0运行复制create table user(
user_id varchar2(20 char),
user_name varchar2(50 char),
part_flag NUMBER(1)
)
partition by range(part_flag) subpartition by list(user_id)
(
partition p1 values less than(50')
(
subpartition s1 values('01','02','03','04','05','06','07','08','09','10'),
subpartition s1 values('11','12','13','14','15','16','17','18','19','20'),
subpartition s1 values('21','22','23','24','25','26','27','28','29','30')
),
partition p2 values less than(100)
(
subpartition s2 values('01','02','03','04','05','06','07','08','09','10'),
subpartition s2 values('11','12','13','14','15','16','17','18','19','20'),
subpartition s2 values('21','22','23','24','25','26','27','28','29','30')
)
) 五、表分区查询代码语言:javascript代码运行次数:0运行复制select * from user partition(p1);
select * from user subpartition(sp1);