将表、索引等数据库对象划分为小的可管理片段的技术,以提高大型表的访问效率。这些分区之间具有相同的逻辑结构。
1、 范围分区
按照某个列和几个列的值的范围来创建分区。
范围分区的原则是:数据应尽可能均匀的分布在各个分区中。
1、 范围分区
按照某个列和几个列的值的范围来创建分区。
范围分区的原则是:数据应尽可能均匀的分布在各个分区中。
创建分区表的语句如下:
PARTITION BYRANGE指定分区的类型为范围分区,在括号中指定一个列或多个列。在随后的PARTITION子句中指定每个分区的属性,若不指定名称,数据库将自动指定;“VALUE LESS THAN”指定分区的上界;可加TABLESPACE子句,指定该分区所在表空间。
进行查询时可以指定在哪个分区表上查询,若不指定则查询整个表中的数据:
SQL>select * frombuss_order PARTITION(name2);
2、 列表分区
范围分区适合数字型或者日期型的数据,对于不能通过范围分区进行划分的,值又相对固定的,可以通过列表分区的方式分区,例如字符串型的数据。
创建列表分区的语句如下:
3、 散列分区
无法预测某个列上的变化范围。
创建语句如下:
4、 复合分区
复合分区指先对表进行范围分区,然后再对每个范围进行列表分区或者散列分区。
语法如下:
PARTITION BY RANGE(COL1)
SUBPARTITION BY HASH|LIST (COL2)
(PARTITION name1 VALUES LESS THAN(…)
(SUBPARTITION name11,
SUBPARTITION name12,…
)
),…