散列分区关键字:HASH
如果表的某个列的值可以枚举,则可以考虑对表进行列表分区。
例1:根据自身情况散列
创建一个商品零售表,然后将该表id列的值根据自身情况散列地存储在指定的两个表空间中。
---1.分区
create table ware_retail_part3(id integer primary key,ratail_date date,ware_name varchar2(50))
partition by hash(id)
(
partition par_has_01 tablespace TBSP_1,--2022年第一季度par_has_01
partition par_has_02 tablespace TBSP_2 --2022年第二季度par_has_02
);
-------2.插入数据
insert into ware_retaail_part3 values(98,to_date('2023-01-21','yyyy-mm-dd'),'电脑');
------3.查看分区数据(Oracle通过id的HASH值进行判断)
select * from ware_retail_part3 partition(par_has_02);
例2:自动生成分区名
首先创建一个表test,然后为该表创建HASH列分区(ID),要求创建的两个分区由系统自动生成分区名,并分别放置在test_1和test_2中。
----1.创建分区
create table test(id integer primary key,name varchar2(10),sex varchar2(2))
partition by hash(id) --使用id作为HASH分区的键值
partitions 2 --创建两个分区,分区名由系统自动给出
store in(test_1,test_2 --指定两个不同的命名空间
);
------2.插入数据
insert into person values(1,'姓名1','女');
例3:指定初始化空间
创建一个goods表,为该表创建HASH列分区(id),并为创建的表分区指定初始化空间,大小为2048kb。
----创建分区
create table goods(id number,goodname varchar2(50))
storage(initial 2048k) --定义表分区的初始化空间大小为2048
partition by hash(id) --创建id列作为分区键的HASH表分区
(
partition par1 tablespace tbsp_1,
partition par2 tablespace tbsp_2
);