在现代的大型分布式信息系统中,数据量的规模已经达到了海量的规模。数据量的增大是数据库管理系统出现了新的问题:数据的可用性降低、DML操作效率降低、数据的管理和维护麻烦。在Oracle数据库管理系统中提出了一个分区的概念。
当一个数据表达到一定大的时候,即使是用索引来进行查询操作,也会相当的慢。为了提高大数据量表的DML操作的性能,可以将一个大表划分成几个部分,这就是分区的概念。可以对任意的表进行分区,但是如果表属于聚簇的一部分,这样的表不能进行分区。分区以后的表当然可以提高查询的速度,如果你查询的数据只是涉及到一个分区,那么DBMS不会尝试去查询别的分区。每一个分区都存储在不同的段,并且都有自己的存储设置。分区甚至是可以存储在不同的表空间里面,因为表空间是一斤是一个物理的存储单位,所以你可以把一张表的不同分区存储在不同的硬盘上面;这样对构建分布式的数据库相当的方便。试想有一个大型连锁supermarket,在全国1x个城市都有连锁店,,那么分布式的数据库系统可以根据地理位置将数据表进行分区。
对数据库表进行分区的一个基本的原则是:能够使对数据库表的DML操作只涉及到一个或这尽量少的分区。对表数据的分区办法一共有五种:范围分区、散列分区、列表分区、范围-散列混合分区、范围-列表混合分区。
范围分区是通过指定值得范围来对数据进行分区。例如:第一季度得销售数据放在第一个partition,这里我们用tablespace来作为一个partition单位。第二季度得销售数据放在第二个partition。在Oracle中可以用以下得语句创建:
create table pta(A data,B varchar2(20)) partition by range(A)
(patition p1 values less than (to_date('20040701','yyyymmdd')),
partition p2 values less than (to_date('20050101','yyyymmdd')))
散列分区对一列或几列应用散列函数,将数据平均分布到各个表分区中。利用这样的分区方式往往是你对分区的范围不确定的时候,而只是希望将数据平均的分布到不同的分区中。对应Oracle中的语句创建是:
create table ta(A date, B varchar2(20))
partition by hash(A)(patition p1, partition p2)
或者
create table ta(A date, B varchar2(20))
partition by hash(A) partitions 2 store in (p1, p2)
列表分区是通过建立一个不同的列表分区的键值,然后根绝这个键值来确定那些数据记录要放到指定键值对应的分区中。这样的分区方式适合于根据值来分区的应用。例如根据城市的名称。对应Oracle中的语句创建是:
create table ta(city_id number; city_ab varchar2(5)) partition by list (city_ab)
(partition beijing values('bg') tablespace ts1,
partition shanghao values('sh') tablespace ts2;
混合分区分方式为范围散列混合分区和范围列表混合分区方式,这两种混合方式并没有新的概念,而只是创建上的语法不同而以。
# posted by wallywong @ 2005-04-09 00:38 评论(0)
分享到:
相关推荐
Oracle数据库中的分区表是一种高级的表组织形式,它将大表分成多个较小的部分,每个部分称为一个分区,以提高查询性能和管理效率。当表的大小超过2GB时,官方推荐使用分区表,因为它们在处理大量数据时具有显著优势...
Oracle分区表中的Hash分区是一种基于哈希算法的分区策略,适用于处理无法清晰定义分区范围的大型数据表。这种分区方式通过计算分区键的哈希值来决定数据存储在哪个分区,以此达到数据分散和负载均衡的目的。Hash分区...
这个压缩包文件" CW M301Hv300分区表.rar"包含的是该硬件平台的分区表信息,这在系统开发和固件更新过程中是至关重要的。 分区表是嵌入式系统中的一种关键配置,它定义了存储器的不同区域(或者说“分区”)以及每...
### MS SQL Server 分区表、分区索引详解 #### 一、分区表简介 使用分区表的主要目的是为了改善大型表及具有多种访问模式的表的可伸缩性和可管理性。这里的“大型表”指的是数据量巨大的表,“访问模式”是指因不同...
分区表损坏时的数据修复 硬盘主引导记录 在计算机系统中,硬盘分区表是存储硬盘的重要组成部分,它记录了硬盘的分区信息。如果分区表遭到破坏,可能会导致硬盘分区信息损失,甚至无法访问硬盘中的数据。因此,维护...
从提供的文件内容可以看出,本文主要介绍的是如何将一个非分区表转换为分区表,其中涉及了四种不同的方法,并且强调了每种方法的执行细节以及注意事项。 1. Export/Import方法 Export/Import方法是最传统的转换策略...
硬盘分区表是计算机存储系统中的一个重要组成部分,它负责组织硬盘空间并将其划分为多个独立的区域,以便操作系统管理和存储数据。本文将详细解释硬盘分区表的位置、结构以及如何通过理解这些知识来修复受损的分区表...
《易我分区表医生:重建损毁分区表的利器》 在数字时代,数据的重要性不言而喻。硬盘上的每一个分区都可能存储着至关重要的信息,而分区表作为硬盘结构的关键部分,一旦损坏,可能会导致数据丢失,甚至系统无法正常...
海思MTD分区表是针对海思半导体的HI3516C芯片设计的一种存储分区配置,主要用于管理和组织嵌入式设备的非易失性存储器(NAND Flash)。MTD,即Memory Technology Device,是Linux系统中用于驱动各种非易失性存储设备...
### 硬盘分区表修改知识详解 硬盘分区表是存储在硬盘0面0柱1扇区上的关键数据结构,它记录了硬盘的分区信息和引导信息,对于计算机启动和数据存储起着至关重要的作用。当分区表因为病毒侵害或其他因素损坏时,系统...
标题中的“使用WinHex操作NTFS的分区表重建”指的是在NTFS文件系统中,当分区表损坏导致分区丢失时,使用WinHex这款强大的十六进制编辑器进行分区表的恢复过程。描述中提到,即使所有分区都消失,也可以通过WinHex来...
"互联网公司为啥不使用mysql分区表" 在互联网公司中,mysql分区表是一个比较少用的技术,这是因为分区表存在一些缺陷和限制,使得互联网公司更多地选择自己分库分表来水平扩展数据库。 首先,分区表的设计需要考虑...
MySQL分区表是一种优化大型数据表查询效率的技术,它将一个大表分成多个逻辑上相连但物理上独立的部分,每个部分称为一个分区。分区可以按照不同的策略进行,如范围、哈希、列表或复合分区。这样做有助于提高数据...
项目中有需求要垂直分表,即按照时间区间将数据拆分到n个表中,PostgreSQL提供了分区表的功能。分区表实际上是把逻辑上的一个大表分割成物理上的几小块,提供了很多好处,比如: 1、查询性能大幅提升 2、删除历史...
### Oracle 分区表详解 #### 一、Oracle 分区简介 Oracle 的分区技术是一种用于管理和优化超大型表和索引的有效手段。通过将一个大型的表或者索引分割成多个较小且可管理的部分,分区技术能够显著提升数据库的性能...
《深入理解:利用WinHex查看磁盘主引导记录与主分区表》 在计算机系统中,磁盘的管理和数据存储离不开关键的结构——主引导记录(MBR, Master Boot Record)和主分区表。这两部分构成了硬盘启动和分区的基础。今天...
PTDD分区表医生是一款专业的硬盘分区管理工具,主要用于检查和修复硬盘的分区表错误。这款软件的全称为Partition Table Doctor,版本为3.5,并已汉化为中文,方便中国用户使用。它是一款绿色版软件,意味着无需安装...
"AX3600&AX6扩容后恢复原厂分区表mtd1镜象." 这个标题指出了一种解决方案,针对的是那些在扩容后尝试用官方救砖工具恢复系统但失败的用户。通常,扩容会改变路由器的分区结构,尤其是mtd1分区,它是存储系统核心文件...