[Postgres]关于Postgres的INHERIT,分表
实在是很强大的功能
可以通过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,分表的更多相关文章
- pgbouncer+pg(fdw)+pg(datanode)分表方案
pgbouncer+pg(fdw)+pg(datanode)分表方案 (环境RHEL6.5,PG9.4.5,pgbouncer1.5.4,libevent2.0.22) 方案架构图如下: pgboun ...
- ShardingSphere-proxy-5.0.0企业级分库分表、读写分离、负载均衡、雪花算法、取模算法整合(八)
一.简要说明 以下配置实现了: 1.分库分表 2.每一个分库的读写分离 3.读库负载均衡算法 4.雪花算法,生成唯一id 5.字段取模 二.配置项 # # Licensed to the Apache ...
- Postgresql分表与优化
--1.创建主表 CREATE TABLE tbl_partition ( date_key date, hour_key smallint, client_key integer, item_key ...
- PostgreSQL-优化之分表
分表概述 数据库分表,就是把一张表分成多张表,物理上虽然分开了,逻辑上彼此仍有联系. 分表有两种方式:水平分表,即按列分开:垂直分表,即按行分开 优势 1. 查询速度大幅提升 2. 删除数据速度更快 ...
- postgresql 创建分表
划分指的是将逻辑上的一个大表分成一些小的物理上的片.划分有很多益处: 1.在某些情况下查询性能能够显著提升,特别是当那些访问压力大的行在一个分区或者少数几个分区时.划分可以取代索引的主导列.减小索引尺 ...
- CRL快速开发框架系列教程十一(大数据分库分表解决方案)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- WebGIS项目中利用mysql控制点库进行千万条数据坐标转换时的分表分区优化方案
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 项目中有1000万条历史案卷,为某地方坐标系数据,我们的真实 ...
- 分享一个MySQL分库分表备份脚本(原)
分享一个MySQL分库备份脚本(原) 开发思路: 1.路径:规定备份到什么位置,把路径(先判断是否存在,不存在创建一个目录)先定义好,我的路径:/mysql/backup,每个备份用压缩提升效率,带上 ...
- 重磅来袭,使用CRL实现大数据分库分表方案
关于分库分表方案详细介绍 http://blog.csdn.net/bluishglc/article/details/7696085 这里就不作详细描述了 分库分表方案基本脱离不了这个结构,受制于实 ...
随机推荐
- day9-IO心得
Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitMQ队列 Redis\Memcached缓存 Paramiko SSH Tws ...
- 关于网格比较工具metro使用的几点注意事项
Metro作为一个非常好用的简化网格比较工具,在科研界几乎算是标准了.不过很多比较牛的作者会使用自己设计的一些比较算法,但是如果metro够用了也就不必那么麻烦了,毕竟Metro使用的方法还算是很成熟 ...
- 大数据,物联网(Internet of Things),万物互联网(Internet of Everything),云计算,雾计算,边缘计算(Edge Computing) 的区别和联系
大数据是一种规模大到在获取.存储.管理.分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模.快速的数据流转.多样的数据类型,高价值性和准确性五大特征,即5V(Volume, V ...
- 「小程序JAVA实战」小程序上传短视频(46)
转自:https://idig8.com/2018/09/14/xiaochengxujavashizhanxiaochengxushangchuanduanshipin45/ 个人信息:用户上传短视 ...
- vue -Missing space before value for key 'path'vue.js解决空格报错
webpack.base.config.js文件注释掉下面的东西!! module: { rules: [ /*{ test: /\.(js|vue)$/, lo ...
- 使用JavaScript弹出Confirm对话框
方法1: 这个比较简单,一句话: <a href="error.htm" onclick="javascript:return confirm('are you s ...
- struts2配置文件(struts.xml)中相关属性的设置
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-/ ...
- 【UVA11212 算法竞赛入门经典】 Editing a Book 【IDA*】
题意 你有一篇由n(2<=n<=9)个自然段组成的文章,希望将它们排列成1,2,···,n.可以用剪切和粘贴来完成任务.每次可以剪切一段连续的自然段,粘贴时按照顺序粘贴.注意剪贴板只有一个 ...
- 高性能Web服务器Nginx的配置与部署研究(1)Nginx简介及入门示例
概述 从这篇博文起,将带领读者们一起领略Nginx的强大. Nginx 是做什么用的?我相信很多朋友都已经使用过,如果你没有,那么你一定知道以下这些名称之一:Apache,Lighttpd,Tomca ...
- GameObject.Find 使用技巧
GameObject.Find是全局搜索 如果你已经知道这个元件在哪个元件里面的话,且担心场景中有重名元件,可以这样写 GameObject.Find ("Canvas/Panel/Imag ...