导读:分区 日常开发中最常用的技术,主要针对于大数据量,频繁查询数据等需求 oracle 提供了 7种分区,本文主要介绍较常用的几种 range 分区 区域分区,分区的时候必须在创建表时指定 语法: create table (...) partition by range (filed) (partition r1 values
分区
日常开发中最常用的技术,主要针对于大数据量,频繁查询数据等需求
oracle 提供了 7种分区,本文主要介绍较常用的几种
range 分区
区域分区,分区的时候必须在创建表时指定
语法:
create table (...) partition by range (filed)
(partition r1 values less than (value));
# value 为分区的依据,比如value=1000,即不超过1000的值都会存放在此分区,
# 如果只有一个分区,那么大于1000的值便无法插入。可以指定value=maxvalue
查看分区情况:
所有分区的情况,可以通过 where 条件判断
select * from user_table_partitions;
查看分区数据:
select * from table partition(r1);
修改分区:
add
alter table tablename add partition r2 values less than (maxvalue);
语法: create index index_name on table(field) local;
查看: select * from user_ind_partitions;
索引的字段一定是分区的字段
global; 全局索引
一种是全局建立索引,这种方式分不分区都一样,不建议使用;
前缀索引
还有一种是自定义索引的区间的索引,即前缀索引,这个是非常有意义的。
语法: 必须指定 maxvalue
create index index_name on table(field) global
partition by range(filed) (
partition r1 values less than(value),partition r2 values less than(maxvalue)
);