2. Refer" />
当前位置: 代码迷 >> Oracle开发 >> 2. Refer
  详细解决方案

2. Refer

热度:160   发布时间:2016-04-24 06:23:19.0
Atitit.常用分区api的attilax总结

Atitit.常用分区apiattilax总结

 

 

1Api 来源与oraclemysql1

1.1. 分区定义partition by range (uid)  使用VALUES LESS THAN操作符来进行定1

1.1.1. mysql1

1.1.2. Oracle分区定义partition by range (uid)  使用VALUES LESS THAN操作符来进行定2

1.2. 分区按照hash2

1.2.1. Oracle语法2

1.3.  列表分区: partition by list()。3

1.4. 分区的修改和合并3

1.5. Del parition3

1.6. 查看分区how create table 表名4

1.6.1. 分区管理 oracle4

2Refer4

 

1. Api 来源与oraclemysql

 

1.1. 分区定义partition by range (uid) 
使用VALUES LESS THAN操作符来进行定

 

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

 

1.1.1. mysql

partition by range (uid) 
( partition p0 values less than (10000) data directory = "/data00/" index directory = "/data00/", 
partition p1 values less than (20000) data directory = "/data00/" index directory = "/data00/", 
partition p2 values less than (30000) data directory = "/data00/" index directory = "/data00/", 
partition p3 values less than maxvalue data directory = "/data00/" index directory = "/data00/"
);

 

1.1.2. Oracle分区定义partition by range (uid) 
使用VALUES LESS THAN操作符来进行定

 

partition by range (uid) 
( partition p0 values less than (10000) data directory = "/data00/" index directory = "/data00/", 
partition p1 values less than (20000) data directory = "/data00/" index directory = "/data00/", 
partition p2 values less than (30000) data directory = "/data00/" index directory = "/data00/", 
partition p3 values less than maxvalue data directory = "/data00/" index directory = "/data00/"
);

 

 

 

 

1.2. 分区按照hash

1.2.1. Oracle语法

散列分区:指在一个(或多个列)上应用一个散列函数,行会按这个散列值放在某个分区中。适用于事先不知道指定范围内有多少数据,以及如果用范围分区,各区之间数据量差异很大、很难人工干预分区间数量平衡的情况。语法是:partition by hash()。例如:

create table department(

Deptnoid int primary key,

Deptname varchar(20)

)

partition by hash(Deptnoid) (

Partition p1,

Partition p2

)

 

 

 

 

 

 

1.3.  列表分区 partition by list()

指定一个离散值集,来确定应当存储在一起的数据。例如,可以指定STATUS列值在(’A’,’M’,’Z’ )中的行放在分区1中,STATUS值在( ‘D’,P’,’Q’ )中的行放在分区2中,依此类推。列表分区和范围分区的不同主要是列表分区按照预先给定的一系列离散值进行分区,新数据插入表中时,根据分区键值找到对应分区。列表分区的分区列只有一个,当然其单个分区对应值可以使多个。在分区时必须确定分区列可能存在的值,一旦插入的列值不在分区范围内,则插入/更新就会失败,因此通常建议使用list分区时,要创建一个default分区,存储那些不在指定范围内的记录,类似range分区中的maxvalue分区。语法是:partition by list()。例如:

create table ListTable(

id int primary key,

area varchar(10)

)

partition by list(area)

(

partition part1 values('guangdong','beijing') ,

partition part2 values('shanghai','nanjing'),

partition part3 values(default)

); 

 

1.4. 分区的修改和合并



以下是将p0分区再分割成2分区s0,s1的例子:

 

1.5. Del parition

 

 alter table titles drop partition p01;

 

1.6. 查看分区how create table 表名

看创建分区表

Uapi  listPatition

 

 

 

1.6.1.  分区管理 oracle

      分区可以和表一样进行增删改查。SQL语句示意如下。

添加分区:alter table xxx add partition p5 values less than (100)。特别注意对于list、range这样存在范围值的分区,所增加的分区值必须要大于当前分区中的最大值,否则会报错,hash分区无此限制。

删除分区:alter table student drop partition p4.

合并分区:alter table student merge partitions p3, p4  into partition p6.

 

 

2. Refer

Atitit.数据库分区的设计 attilax  总结

数据库学习之分区技术_Doraemonls_新浪博客.htm

 

  相关解决方案