您的位置:首页 > 数据库 > Oracle

告诉你如何设计一个日访问量千万级别的系统,谈oracle的高级设计和开发(6)

2015-03-12 15:07 453 查看
继续分区表

分区表索引的使用:

分区表和一般表一样可以建立索引,分区表可以创建局部索引和全局索引。局部索引针对某个分区,全局索引针对整个表。

通常来说,OLTP系统中以建全局索引居多,OLAP则通常建本地局部索。

 

 

局部索引分区的建立:

create index idx_memberBase_memberLoginName on memberBase(memberLoginName)

    local

    (

      partition idx_1 tablespace tb_idx,

      partition idx_2 tablespace tb_idx,

      partition idx_3 tablespace tb_idx);

     当然也可以将每个局部索引建立到不同的表空间下,依据数据量的实际情况而定。

 

 全局索引分区的建立。

全局索引建立时global 子句允许指定索引的范围值,这个范围值为索引字段的范围值:

示例1:

 create indexidx_memberBase_memberLoginName on memberBase(memberLoginName)

  globalpartition by range(memberID)

    (

       partitionidx_1 values less than (5000000) tablespace tb_fifc,

      partition idx_2 values less than (10000000) tablespace tb_idx,

      partition idx_3  values less than(maxvalue) tablespace tb_idx

    );

 

示例2: 同样是全局索引,但是索引表中的数据存放在一起

create index idx_memberBase_memberLoginName on memberBase(memberLoginName)tablespace tb_idx

 

 

分区表的维护:

 增加一个分区,增加一个分区的时候,增加的分区的条件必须大于现有分区的最大值。

示例:

    altertable memberBase

    addpartition part_04 values less than(15000000) tablespace tb_mb04;

 

合并一个分区:

 alter table memberBasemerge partitions part_01,part_02 into partition part_02;

 

  在本例中将原有的表的part_01分区和part_02分区进行了合并,合并后的分区为part_02,如果在合并的时候

   把合并后的分区定为 part_01的时候,系统将提示越界错误。

 

删除分区:

    altertable memberBase drop partition part_03;

    删除分区表的一个分区后,查询该表的数据时显示,该分区中的数据已全部丢失,所以执行删除分区动作时要慎重,确保先备份数据后再执行,或将分区合并。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐