postgresql数据库分区表

分区表条件

  • 数据达到100万条
  • 数据是分段的,即只涉及一部分数据而不是所有数据
  • 分区表就是将一个大表分成若干个小表

以下代码为sqlserver创建分区表

  • 分区函数的代码:
CREATE PARTITION FUNCTION partfunSale (datetime)  
AS RANGE RIGHT FOR VALUES ('20100101','20110101','20120101','20130101')
  1. CREATE PARTITION FUNCTION意思是创建一个分区函数。
  2. partfunSale为分区函数名称。
  3. AS RANGE RIGHT为设置分区范围的方式为Right,也就是右置方式。
  4. 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)
  1. CREATE PARTITION SCHEME意思是创建一个分区方案。
  2. partschSale为分区方案名称。
  3. AS PARTITION partfunSale说明该分区方案所使用的数据划分条件(也就是所使用的分区函数)为partfunSale
  4. 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])
  1. CREATE TABLE意思是创建一个数据表。
  2. Sale为数据表名。
  3. ()中为表中的字段,这里的内容和创建普通数据表没有什么区别,惟一需要注意的是不能再创建聚集索引了。道理很简单,聚集索引可以将记录在物理上顺序存储的,而分区表是将数据分别存储在不同的表中,这两个概念是冲突的,所以,在创建分区表的时候就不能再创建聚集索引了。
  4. ON partschSale()说明使用名为partschSale的分区方案。
  5. 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');
  1. 表名 schema.tablename 格式
  2. 创建分区的起始时间
  3. 创建分区的结束时间
  4. 分区类型 day:天分区 mon:月分区
  5. 分区字段

  1. 版权声明:本文为CSDN博主「hewy0526」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/hewy0526/article/details/9115525 ↩︎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQL 支持分区表,它允许将表数据根据特定的条件拆分成多个子表,从而提高查询性能和管理数据。下面是一些关于 PostgreSQL 分区表的基本信息: 1. 分区表定义:在创建表时,可以使用 PARTITION BY 子句指定分区键。常见的分区键类型包括范围(range)、列表(list)和哈希(hash)。 2. 范围分区(Range partitioning):根据某个列的值范围进行分区,例如按时间范围、按数值范围等。可以使用 CREATE TABLE 语句的 PARTITION OF 子句定义每个分区。 3. 列表分区(List partitioning):根据某个列的值列表进行分区,例如按地区、按部门等。也可以使用 CREATE TABLE 语句的 PARTITION OF 子句定义每个分区。 4. 哈希分区(Hash partitioning):根据某个列的哈希值进行分区,通常用于数据平均分布的场景。使用 CREATE TABLE 语句的 PARTITION OF 子句定义每个分区。 5. 分区表管理:分区表可以通过 ALTER TABLE 添加或删除分区。还可以使用 EXCHANGE PARTITION 子句将数据从非分区表或已有分区中交换进入分区表。 6. 查询优化:PostgreSQL 的查询优化器会在执行查询时自动识别并只查询相关分区,从而提高查询性能。同时,可以通过查询约束来进一步减少查询的分区范围。 需要注意的是,分区表数据库中的使用需要根据具体的业务需求和数据特点来决定,同时需要合理设计和规划分区键,以及考虑数据维护和查询优化等方面的因素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值