表空间,分区表

第10章 表空间、分区表

1. 什么是表空间?

表空间(Tablespace)是 Oracle 数据库中用于存储数据的逻辑容器。它是数据库对象的物理存储单元,如表、索引等。表空间由一个或多个数据文件组成,数据文件是实际存储数据的物理文件。表空间的主要作用包括:

  • 数据管理:将数据按逻辑分组存储,便于管理。
  • 性能优化:通过将不同的表空间分配到不同的磁盘上,可以提高 I/O 性能。
  • 备份与恢复:表空间可以作为备份和恢复的最小单位。

2. 什么是分区表?对表进行分区,有哪几种类型?

分区表(Partitioned Table)是将一个大表按某种规则分成多个小表(分区)的技术。每个分区可以独立存储和管理,从而提高查询性能、简化数据维护。分区表的类型包括:

  • 范围分区(Range Partitioning):根据某个字段的值范围进行分区,例如按日期或金额范围。
  • 列表分区(List Partitioning):根据某个字段的离散值进行分区,例如按地区或行业。
  • 散列分区(Hash Partitioning):根据某个字段的哈希值进行分区,通常用于均匀分布数据。
  • 复合分区(Composite Partitioning):结合多种分区方式,例如先按范围分区,再按列表分区。

3. 创建订单表(订单 ID,订单标题,订单总金额),使用范围分区,对订单总金额字段值的范围进行分区。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE DINGDAN (
DID INT,
TITILE VARCHAR2(10),
DSUM FLOAT
)
PARTITION BY RANGE (DSUM) (
PARTITION p1 VALUES LESS THAN (1000), -- 金额小于 1000
PARTITION p2 VALUES LESS THAN (3000), -- 金额小于 3000
PARTITION p3 VALUES LESS THAN (5000), -- 金额小于 5000
PARTITION p4 VALUES LESS THAN (MAXVALUE) -- 金额大于等于 5000
);

-- 删除表
DROP TABLE DINGDAN;

4. 创建客户表(客户 ID,客户名称,行业),使用列表分区,对客户的行业字段值进行列表分区。

1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE KEHU (
KID INT,
KNAME VARCHAR2(10),
HANGYE VARCHAR2(10)
)
PARTITION BY LIST (HANGYE) (
PARTITION p1 VALUES ('IT'), -- IT 行业
PARTITION p2 VALUES ('JINRONG'), -- 金融行业
PARTITION p3 VALUES ('YILIAO') -- 医疗行业
);

-- 删除表
DROP TABLE KEHU;

5. 创建产品表(产品 ID,产品名称,标准价),使用哈希分区,对产品的标准价字段值进行哈希分区。

1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE CHANPIN (
CID INT,
CNAME VARCHAR2(10),
CSUM INT
)
PARTITION BY HASH (CSUM) (
PARTITION p1,
PARTITION p2,
PARTITION p3
);

-- 删除表
DROP TABLE CHANPIN;

表空间,分区表
https://blog.pangcy.cn/2018/10/10/数据库相关/Oracle/SQL 练习/表空间,分区表/
作者
ziYang | 子洋
发布于
2018年10月10日
许可协议