Oracle 分区表 Partition

本文介绍如何在数据库中创建一个分区表,并将每个分区放置在不同的表空间中,以增强可用性、维护方便性和提升查询性能。通过范围分区方法,根据特定条件划分数据,实现数据的高效管理和查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建一个表,使用三个分区表,并且每个分区表位于不同的表空间中
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
…………
)

其他都不常用了。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值