今天是2016年4月13号,清晨据说是50年来深圳最大的雨把我给吵醒了,上午腾讯新闻弹出新闻说这是谣言~!我信了~! 今天把tiptop的一个功能实现了~心情还不错。不瞎扯了,今天开始学习oracle表分区和索引分区!坚持就是胜利~
oracle是支持物理分区的数据库管理系统,据说是最早支持的!优点如下
1:减少维护工作量,独立管理每个分区比管理大的单分区简单
2:数据可用性增强,一个分区坏了不影响所有数据
3:提高查询速度
4:均衡I/O
创建表分区
create table ware_retail_part
(
id integer primary key,
retail_date date,
ware_name varchar2(50)
)
partition by range(retail_date)
(
partition par_01 values less than(to_date(‘2011-04-01‘,‘yyyy-mm-dd‘)),
partition par_02 values less than(to_date(‘2011-07-01‘,‘yyyy-mm-dd‘)),
partition par_03 values less than(to_date(‘2011-10-01‘,‘yyyy-mm-dd‘)),
partition par_04 values less than(to_date(‘2012-01-01‘,‘yyyy-mm-dd‘))
);
也可以用多个作为range对象
散列分区(HASH分区)
很难区分范围的用这个,对范围查询和不等式查询没优化作用
创建
create table ware_retail_part3
(
id integer primary key,
retail_date date,
ware_name varchar2(50)
)
storage(initial 2048k) --指定表分区的初始化空间大小
partition by hash(id) 分区
(
partition par_01 tablespace tmp_01,
partition par_02 tablespace tmp_02
);
列表分区
关键字LIST
表的某个列可以枚举就用列表分区
create table ware_retail_part3
(
id integer primary key,
name varchar2(50),
province varchar2(20)
)
partition by list(province) 分区
(
partition shandong values(‘山东省‘),
partition shenzhen values(‘深圳省‘),
partition jiujiang values(‘九江省‘)
);