postgresql数据库分区表
·
分区表条件
- 数据达到
100万条 - 数据是分段的,即只涉及一部分数据而不是所有数据
- 分区表就是将一个大表分成若干个小表
以下代码为sqlserver创建分区表
- 分区函数的代码:
CREATE PARTITION FUNCTION partfunSale (datetime)
AS RANGE RIGHT FOR VALUES ('20100101','20110101','20120101','20130101')
CREATE PARTITION FUNCTION意思是创建一个分区函数。partfunSale为分区函数名称。AS RANGE RIGHT为设置分区范围的方式为Right,也就是右置方式。FOR VALUES ('20100101','20110101','20120101','20130101')为按这几个值来分区。
- 分区方案代码:
CREATE PARTITION SCHEME partschSale
AS PARTITION partfunSale
TO (
Sale2009,
Sale2010,
Sale2011,
Sale2012,
Sale2013)
CREATE PARTITION SCHEME partschSale
AS PARTITION partfunSale
TO (
Sale2009,
Sale2010,
Sale2011,
Sale2012,
Sale2013)
CREATE PARTITION SCHEME意思是创建一个分区方案。partschSale为分区方案名称。AS PARTITION partfunSale说明该分区方案所使用的数据划分条件(也就是所使用的分区函数)为partfunSale。TO后面的内容是指partfunSale分区函数划分出来的数据对应存放的文件组。
- 创建分区表
CREATE TABLE Sale(
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](16) NOT NULL,
[SaleTime][datetime] NOT NULL
) ON partschSale([SaleTime])
CREATE TABLE Sale(
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](16) NOT NULL,
[SaleTime][datetime] NOT NULL
) ON partschSale([SaleTime])
CREATE TABLE意思是创建一个数据表。Sale为数据表名。()中为表中的字段,这里的内容和创建普通数据表没有什么区别,惟一需要注意的是不能再创建聚集索引了。道理很简单,聚集索引可以将记录在物理上顺序存储的,而分区表是将数据分别存储在不同的表中,这两个概念是冲突的,所以,在创建分区表的时候就不能再创建聚集索引了。ON partschSale()说明使用名为partschSale的分区方案。partschSale()括号中为用于分区条件的字段是SaleTime。
Pg创建分区表Pg没有分区表的创建命令,是通过创建继承表即约束等规则来创建
规范 时间区分字段统一采用timestamp(0)
一、原始表 amelia_partition1
create table amelia_partition (
id integer,
name varchar(20),
gender boolean,
yyyymmdd timestamp(0),
dept char(4)
);
二、将普通表转换为分区表(public.partition_generate)
select public.partition_generate('public.tbl_partition','20130101','20130103','day','yyyymmdd');
- 表名
schema.tablename格式 - 创建分区的起始时间
- 创建分区的结束时间
- 分区类型
day:天分区mon:月分区 - 分区字段
版权声明:本文为CSDN博主「hewy0526」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hewy0526/article/details/9115525 ↩︎
更多推荐
所有评论(0)