文章目录
1 概述
1. 目的:提高大表的查询效率
2. 概念:将一个表划分为多个分区表,"分而治之"
3. 优缺点
优点:
(1) '改善查询性能': 分区对象的查询仅搜索自己关系的分区
(2) '增强可用性' : 如果某个分区出现故障,其它分区的数据仍然可用
(3) '维护方便' : 如果某个分区出现故障,仅修复该分区即可
(4) '均衡I/O' : 将不同的分区放置不同的磁盘,以均衡 I/O,改善整个系统性能
缺点:
(1) 已经存在的表无法直接转化为分区表 -- 不过有很多间接方法,如:重定义表
4. 适用情况
(1) 表的大小超过 2GB
1.1 思维导图
2 分类
2.1 传统表分区
2.1.1 范围分区 range
情况1:数值范围分区
create table pt_range_test1(
pid number(10),
pname varchar2(30)
) partition by range(pid)(
partition p1 values less than(1000) tablespace tetstbs1,
partition p2 values less than(2000) tablespace tetstbs2,
partition p3 values less than(maxvalue) tablespace tetstbs3
) enable row movement;
插入数据:
insert into pt_range_test1 (pid, pname) values (1, '瑶瑶');
insert into pt_range_test1 (pid, pname) values (1500, '倩倩');
insert into pt_range_test1 (pid, pname) values (null, '优优');
commit;
查询数据:
select * from user_tab_partitions t;
select 'P1' 分区名, t.* from pt_range_test1 partition (p1) t union all
select 'P2' 分区名, t.* from pt_range_test1 partition (p2) t union all
select 'P3' 分区名, t.* from pt_range_test1 partition (p3) t
情况2:时间范围分区(同理)
create table pt_range_test2(
pid number(10),
pname varchar2(30),
create_date date
) partition by range(create_date)(
partition p1 values less than(to_date<