实在是很强大的功能

可以通过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. day9-IO心得

    Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitMQ队列 Redis\Memcached缓存 Paramiko SSH Tws ...

  2. 构造方法PK实例方法

    1.构造方法 (1)用于对象初始化,一个类中至少有一个构造方法 (2)不能显示调用,只能在创建对象时,使用new来调用 (3)构造方法不能有返回值 (4)构造方法名称必须与类名一样 2.实例方法 (1 ...

  3. 随机森林(Random Forest,简称RF)

    阅读目录 1 什么是随机森林? 2 随机森林的特点 3 随机森林的相关基础知识 4 随机森林的生成 5 袋外错误率(oob error) 6 随机森林工作原理解释的一个简单例子 7 随机森林的Pyth ...

  4. vue之slot,组件标签嵌套

    vue之slot,组件标签嵌套 插槽(Slot),在各种vue的ui插件中,经常见到的多个组件标签相互嵌套(如下)就是以此为基础的. <el-col > <el-checkbox & ...

  5. ffmpeg源码分析四:transcode_step函数 (转4)

    原帖地址:http://blog.csdn.net/austinblog/article/details/25099979 该函数的主要功能是一步完整的转换工作,下面看看源代码: static int ...

  6. Windows Ruby 安装步骤

    by 狂奔的蜗牛的博客 from http://www.host900.com/ 本文地址:http://www.host900.com/index.php/articles/285/ Windows ...

  7. 改bug的乐趣

    一直以来,我都不喜欢改bug,不管是自己的,还是别人的.因为我不相信自己的代码会出现问题,一旦出现问题我就会觉得很难堪,因为我觉得我的代码没什么问题.然后我就不知道该怎么来解决这些问题. 最近这一两次 ...

  8. 依赖VUE组件通讯机制实现场景游戏切换

  9. GRUB使用说明

    从Red Hat Linux 7.2起,GRUB(GRand Unified Bootloader)取代LILO成为了默认的启动装载程序.相信LILO对于大家来说都是很熟悉的.这次Red Hat Li ...

  10. Linux buffer and cache

    A buffer is something that has yet to be "written" to disk. A cache is something that has ...