大型数据库分区表研究_第1页
大型数据库分区表研究_第2页
大型数据库分区表研究_第3页
大型数据库分区表研究_第4页
大型数据库分区表研究_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    大型数据库分区表研究    【摘要】 分区表在大型数据库特别是分布式数据库中占有重要地位,分区是一种“分而治之”的技术,为大量数据提供了可伸缩的性能,提高了对巨型数据库的读写和查询速度。本文主要研究了分布式数据库oralce 中的list分区表和range分区表的创建与应用,探讨了其切割和分区表的修改技术。从而可以类推分区表在其它数据库关系系统如大数据中hive中的应用。【关键字】 大型数据库oracle list分区表 range 分区表 分区表的切割一、引言分区表应用在大型的分布数据库中,分区是一种“分而治之”的技术,通过将大表引分成可以管理

2、的小块,从而避免了对每个表作为一个大的、单独的对象进行管理,为大量数据提供了可伸缩的性能,提高了巨型数据库的读写和查询速度。分区表是将一个大的表分割成较小的片段(分区),在实际应用中,分区表的操作是在独立的分区上,但是对用户而言是透明的 12 。oracle提供了分区技术以支持vldb(very large database)。分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。分区完全对应用透明。oracle的分区表可以包括多个分区,每个分区都是一个独立的段(segment),可以存放到不同的表空间中。查询时可以通过查询表来访问各个分区中的数据,也可以通过在查询时直接指定分区的方

3、法来进行查询。分区表的主要优点为:(1)由于将数据分散到各个分区中,减少了数据损坏的可能性;(2)可以对单独的分区进行备份和恢复;(3)可以将分区映射到不同的物理磁盘上,来分散io;(4)提高可管理性、可用性和性能。什么时候需要分区表,官网给出了2个建议:(1)tables greater than 2gb should always be considered for partitioning.(2)tables containing historical data, in which new data is added into the newest partition. a typica

4、l example is a historical table where only the current months data is updatable and the other 11 months are read only.二、分区表的创建和应用oracle 10g以上版本提供了以下几种分区类型:(1)范围分区(range);(2)哈希分区(hash);(3)列表分区(list);(4)范围-哈希复合分区(range-hash);(5)范围-列表复合分区(range-list)。这里以应用广泛的list分区和range分区为例说明分区表的应用。2.1 list 分区表list分区(

5、列表分区): 通过列表方法(指定字符串值方法)进行分区。 list分区表需要考虑分区的依据,分区的名字,分区值(或者值的区域)每个分区所在的表空间。在分区时必须确定分区列可能存在的值,一旦插入的列值不在分区范围内,则插入/更新就会失败,因此通常建议使用list分区时,要创建一个default分区存储那些不在指定范围内的记录,类似range分区中的maxvalue分区。create table part_book1( bid number(4),bookname varchar2(20),bookpress varchar2(30),booktime date)partition by list

6、(bookpress)(partition part1 values(清华大学出版社) tablespace system,partition part2 values(教育出版社) tablespace users); list分区表的插入同普通表,如下:sql> insert into part_book1 values(1,oralce,清华大学出版社,to_date(20110102,yyyymmdd);sql> insert into part_book1 values(2,音乐基础欣赏,教育出版社,to_date(20120102,yyyymmdd);list分区表可以

7、分区查询,如下:sql> select * from part_book1 partition(part1);创建或修改分区时,可以指定default,把非分区规则的数据,全部放到这个default分区,如除了清华大学出版社, 教育出版社之外的出版社,放到分区表part_book1的part3分区中。sql> alter table part_book1 add partition part3 values(default) tablespace system;与分区表相关的数据字典:dba_part_tables,dba_tab_ partitions等等。2.2 range 分

8、区表range 分区表是应用范围比较广的表分区方式34,范围分区就是对数据表中的某个值的范围进行分区,根据某个值的范围,决定将该数据存储在哪个分区上。它是以列的值的范围来做为分区的划分条件,将记录存放到列值所在的range分区中。比如按照时间划分,某大型企业的数据2015 年1 季度的数据放到a 分区,2015年2 季度的数据放到b分区,因此在创建的时候,需要指定基于的列,以及分区的范围值。若某些记录暂无法预测范围,可创建maxvalue 分区,所有不在指定范围内的记录会存储maxvalue 区。建立range分区表分区表需要考虑分区的依据,分区的名字,分区值(或者值的区域)每个分区所在的表空

9、间。values less than:后跟分区范围值(如果依赖列有多个,范围对应值也应是多个,中间以逗号分隔);create table part_book( bid number(4),bookname varchar2(20),bookpress varchar2(30),booktime date)partition by range(booktime)(partition part1 values less than(to_ date(20100101,yyyymmdd) tablespace system,partition part2 values less than (to_ d

10、ate(20120101,yyyymmdd) tablespace users,partition part3 values less than (maxvalue) tablespace users);insert into part_book values(1,oracle,清华大学出版社,to_date(20110102,yyyymmdd);insert into part_book values(2,oracle,清华大学出版社,to_date(20090101,yyyymmdd);range 分区表用过一段时间之后,若需要增加新的分区,可以对range分区表进行切割5。range 分

11、区切割的位置为在分区表中间或者开始处或者带有maxvalue值的尾处增加分区。其语法格式如下:alter table 表名 split partition 分区的名字 at(值) into (partition 新分区的名字1 ,partition 新分区的名字2)分区表的切割举例:将part3分区切割为两个新的分区,名字为part3、part4,分区的的依据值为20140101.alter table part_book4s p l i t p a r t i t i o n p a r t 3 a t ( t o _ date(20140101,yyyymmdd)into(partitio

12、n part3,partition part4);range 分区表的插入和查询操作同 list分区表,在这里不再赘述。 另外对于组合分区:如果某表按照某列分区之后,仍然较大,或者是一些其它的需求,还可以通过分区内再建子分区的方式将分区再分区,即组合分区的方式。三、总结分区表提高了大型、巨型数据库的读写和查询速度,为大量数据的存储、读取提供了可伸缩性能,本文主要研究了分布式数据库oracle 中的list分区表和range分区表的创建与应用,探讨了其切割和分区表的修改技术。参 考 文 献1 王立君.并行多媒体数据库中基于内容的高效检索的数据分配方法的研究. j科学技术与工程,2013.13(9),2544-25482 郭晋秦, 韩 焱. 大型数据库聚类中伪装危险数据识别方法研究. 计算机仿真

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论