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 ↩︎

    原文作者:爱学习的Amelia
    原文地址: https://blog.csdn.net/weixin_46361294/article/details/123424879
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞