实在是很强大的功能

可以通过Check的制约把结构相同的表合并起来,或者反过来说,可以在一个表名下数据库自动的根据Check条件往对应的分表里存储数据

[USER_DATA表]

CREATE TABLE test."USER_DATA"
(
"MAC" character varying(12) NOT NULL,
"ID" character(3) NOT NULL,
"YEARS" numeric(6,0) NOT NULL,
"DAY" numeric(2,0) NOT NULL,
"HOUR" numeric(2,0) NOT NULL,
CONSTRAINT "USER_DATA_pkey" PRIMARY KEY ("MAC", "ID", "YEARS", "DAY", "HOUR")
)

[USER_DATA]的分表1[USER_DATA_201310]

CREATE TABLE test."USER_DATA_201310"
(
-- Inherit from table test."USER_DATA": "MAC" character varying(12) NOT NULL,
-- Inherit from table test."USER_DATA": "ID" character(3) NOT NULL,
-- Inherit from table test."USER_DATA": "YEARS" numeric(6,0) NOT NULL,
-- Inherit from table test."USER_DATA": "DAY" numeric(2,0) NOT NULL,
-- Inherit from table test."USER_DATA": "HOUR" numeric(2,0) NOT NULL,
CONSTRAINT "USER_DATA_201210_pkey" PRIMARY KEY ("MAC", "ID", "YEARS", "DAY", "HOUR"),
CONSTRAINT "USER_DATA_YEARS_check" CHECK ("YEARS" = 201310::numeric)
)
INHERITS (test."USER_DATA")

[USER_DATA]的分表2[USER_DATA_201311]

CREATE TABLE test."USER_DATA_201311"
(
-- Inherit from table test."USER_DATA": "MAC" character varying(12) NOT NULL,
-- Inherit from table test."USER_DATA": "ID" character(3) NOT NULL,
-- Inherit from table test."USER_DATA": "YEARS" numeric(6,0) NOT NULL,
-- Inherit from table test."USER_DATA": "DAY" numeric(2,0) NOT NULL,
-- Inherit from table test."USER_DATA": "HOUR" numeric(2,0) NOT NULL,
CONSTRAINT "USER_DATA_201210_pkey" PRIMARY KEY ("MAC", "ID", "YEARS", "DAY", "HOUR"),
CONSTRAINT "USER_DATA_YEARS_check" CHECK ("YEARS" = 201311::numeric)
)
INHERITS (test."USER_DATA")

通过CHECK ("YEARS" = 2013xx::numeric)来把往表[USER_DATA]上存储的数据自动的存储到分表1[USER_DATA_201310]或者分表2[USER_DATA_201311]上

这样做不仅可以降低单表的数据量,而且可以方便的拆分,组合,更方便的是,取数据的时候只用去访问[USER_DATA]表,就可以查询所有分表里的数据

组合

ALTER TABLE test."USER_DATA_201312" INHERIT test."USER_DATA"

拆分

ALTER TABLE test."USER_DATA_201310" NO INHERIT test."USER_DATA"

[Postgres]关于Postgres的INHERIT,分表的更多相关文章

  1. pgbouncer+pg(fdw)+pg(datanode)分表方案

    pgbouncer+pg(fdw)+pg(datanode)分表方案 (环境RHEL6.5,PG9.4.5,pgbouncer1.5.4,libevent2.0.22) 方案架构图如下: pgboun ...

  2. ShardingSphere-proxy-5.0.0企业级分库分表、读写分离、负载均衡、雪花算法、取模算法整合(八)

    一.简要说明 以下配置实现了: 1.分库分表 2.每一个分库的读写分离 3.读库负载均衡算法 4.雪花算法,生成唯一id 5.字段取模 二.配置项 # # Licensed to the Apache ...

  3. Postgresql分表与优化

    --1.创建主表 CREATE TABLE tbl_partition ( date_key date, hour_key smallint, client_key integer, item_key ...

  4. PostgreSQL-优化之分表

    分表概述 数据库分表,就是把一张表分成多张表,物理上虽然分开了,逻辑上彼此仍有联系. 分表有两种方式:水平分表,即按列分开:垂直分表,即按行分开 优势 1. 查询速度大幅提升 2. 删除数据速度更快 ...

  5. postgresql 创建分表

    划分指的是将逻辑上的一个大表分成一些小的物理上的片.划分有很多益处: 1.在某些情况下查询性能能够显著提升,特别是当那些访问压力大的行在一个分区或者少数几个分区时.划分可以取代索引的主导列.减小索引尺 ...

  6. CRL快速开发框架系列教程十一(大数据分库分表解决方案)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  7. WebGIS项目中利用mysql控制点库进行千万条数据坐标转换时的分表分区优化方案

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 项目中有1000万条历史案卷,为某地方坐标系数据,我们的真实 ...

  8. 分享一个MySQL分库分表备份脚本(原)

    分享一个MySQL分库备份脚本(原) 开发思路: 1.路径:规定备份到什么位置,把路径(先判断是否存在,不存在创建一个目录)先定义好,我的路径:/mysql/backup,每个备份用压缩提升效率,带上 ...

  9. 重磅来袭,使用CRL实现大数据分库分表方案

    关于分库分表方案详细介绍 http://blog.csdn.net/bluishglc/article/details/7696085 这里就不作详细描述了 分库分表方案基本脱离不了这个结构,受制于实 ...

随机推荐

  1. "网页安全政策"(Content Security Policy,缩写 CSP)的来历

    作者:阿里聚安全链接:https://www.zhihu.com/question/21979782/answer/122682029来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

  2. 3、数据类型一:strings

    题外: 学习过程参考三份资料:<Redis入门指南>.<Redis实战>.http://redis.io 后面的学习笔记中会引入它们的内容或代码,在这里统一说明,后面笔记中便不 ...

  3. objective c to pas

    https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol ...

  4. Zabbix Proxy 分布式监控

    简介: Zabbix 是一个分布式监控系统,它可以以一个中心点.多个分节点的模式运行,使用 proxy 能降低 Zabbix Server 的压力,当然也带来了成本~ 适用范围:跨机房.跨地域的网络监 ...

  5. Maven使用Nexus私服的配置

    工作记录 —————————————————————————————— 配置文件 apache-maven-3.3.3\conf\settings.xml 在mirrors(镜像)之间配置. url为 ...

  6. SpringMVC 配置多个dispatcher 及WebApplicationInitializer的使用

    SpringMVC 在配置多个dispatcher时,一般可以如下配置: <!-- spring mvc start --> <servlet> <servlet-nam ...

  7. java算法 第七届 蓝桥杯B组(题+答案) 2.生日蜡烛

    2.生日蜡烛  (结果填空) 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛.现在算起来,他一共吹熄了236根蜡烛.请问,他从多少岁开始过生日party的?请填写他开 ...

  8. EMC校招笔试题目

    ------------------------------------------------- 1,7×(1/7) = 1是什么率? 乘法运算满足结合律,交换律和分配率.这个题目用的应该是交换律. ...

  9. len=in.read(b,0,len)和len=in.read(b)的区别

    byte[] byte = new byte[1024]; int len =0 ; while((len=in.read(b))!=-1){ out.write(b,0,len); } read函数 ...

  10. java-tip-关于StringBuilder的使用

    当我们需要拼接字符串时,通常会使用StringBuilder,这里简单分析下StringBuilder的内部结构. StringBuilder内部是一个char数组,当调用append方法连接字符串时 ...