Oracle 分区表 Partition

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://xxlcube.blog.csdn.net/article/details/8111953
创建一个表,使用三个分区表,并且每个分区表位于不同的表空间中
CREATE TABLE student
(
   id         NUMBER PRIMARY KEY,
   username   VARCHAR2 (50),
   score      NUMBER
)
PARTITION BY RANGE (score)
   (PARTITION part1
       VALUES LESS THAN (60)
       TABLESPACE demo1,
    PARTITION part2
       VALUES LESS THAN (80)
       TABLESPACE demo2,
    PARTITION part3
       VALUES LESS THAN (maxvalue)
       TABLESPACE demo3);

向表中插入数据
INSERT INTO student
  VALUES   (1, 'tree', 57);

INSERT INTO student
  VALUES   (2, 'chiwei', 90);

INSERT INTO student
  VALUES   (3, 'simon', 89);

INSERT INTO student
  VALUES   (4, 'joy', 68);

INSERT INTO student
  VALUES   (5, 'lyn', 71);

INSERT INTO student
  VALUES   (6, 'will', 80);

COMMIT;

查询指定分区中的表数据
SELECT   *
  FROM   student PARTITION (part3);

----------------------------------------------------------------
在对表进行分区时,每个分区都具有相同的逻辑属性,例如字段名,数据类型等,不过各个分区的物理属性可以不同,即可以位于不同的表空间。

分区可以
·增强可用性:表的某个分区故障,不影响其他分区的数据使用
·维护方便:故障,修复即可
·均衡I/O:不同的分区映射到磁盘以平衡I/O
·改善查询性能:可以仅搜索某一个分区

分区方法
·范围分区 partition by range
·散列分区 partition by hash
·列表分区
·组合范围散列分区
·组合范围列表分区

以上例子是范围分区,根据score值的范围分区。

散列分区是通过哈希算法均匀分布数据的一种分区类型
partition by hash(id) (
partition part1 tablespace xxx
…………
)

其他都不常用了。






展开阅读全文

没有更多推荐了,返回首页