Postgres 10 新特性 分区表

http://francs3.blog.163.com/blog/static/40576727201742103158135/

Postgres 10 之前分区表插件实现 pg_pathman

https://yq.aliyun.com/articles/62314#25

这里简单记录基于触发器或规则实现

创建分区表
CREATE TABLE RECORD ( --主表
record_id int NOT NULL,
record_pro text NOT NULL,
city_id int,
city_name text
);

CREATE TABLE RECORD_DEFALUT (CHECK(city_id = 0)) INHERITS (RECORD); --DEFAULT
CREATE TABLE RECORD_BJ (CHECK(city_id = 1)) INHERITS (RECORD); --北京
CREATE TABLE RECORD_SH (CHECK(city_id = 2)) INHERITS (RECORD); --上海
CREATE TABLE RECORD_GZ (CHECK(city_id = 3)) INHERITS (RECORD); --广州
CREATE TABLE RECORD_SZ (CHECK(city_id = 4)) INHERITS (RECORD); --深圳

创建规则

CREATE RULE RECORD_DEFAULT_RULE_INSERT AS
ON INSERT TO RECORD WHERE city_id = 0
DO INSTEAD
INSERT INTO RECORD_DEFALUT VALUES (NEW.*);

CREATE RULE RECORD_BJ_RULE_INSERT AS
ON INSERT TO RECORD WHERE city_id = 1
DO INSTEAD
INSERT INTO RECORD_BJ VALUES (NEW.*);

CREATE RULE RECORD_SH_RULE_INSERT AS
ON INSERT TO RECORD WHERE city_id = 2
DO INSTEAD
INSERT INTO RECORD_SH VALUES (NEW.*);

CREATE RULE RECORD_GZ_RULE_INSERT AS
ON INSERT TO RECORD WHERE city_id = 3
DO INSTEAD
INSERT INTO RECORD_GZ VALUES (NEW.*);

CREATE RULE RECORD_SZ_RULE_INSERT AS
ON INSERT TO RECORD WHERE city_id = 4
DO INSTEAD
INSERT INTO RECORD_SZ VALUES (NEW.*);

输入模拟数据

truncate RECORD;

INSERT INTO RECORD
SELECT generate_series(1, 100),'recode', (int4(random()*10))%5,'city';

INSERT INTO RECORD VALUES(1 , 'recode', 3 , 'city');
INSERT INTO RECORD VALUES(2 , 'recode' , 3 , 'city');
INSERT INTO RECORD VALUES(3 , 'recode' , 0 , 'city');
INSERT INTO RECORD VALUES(4 , 'recode' , 0 , 'city');
INSERT INTO RECORD VALUES(5 , 'recode' , 4 , 'city');
INSERT INTO RECORD VALUES(6 , 'recode' , 3 , 'city');
INSERT INTO RECORD VALUES(7 , 'recode' , 3 , 'city');
INSERT INTO RECORD VALUES(8 , 'recode' , 0 , 'city');
INSERT INTO RECORD VALUES(9 , 'recode' , 0 , 'city');
INSERT INTO RECORD VALUES(10 , 'recode', 2, 'city');

Postgresql 分区表 一的更多相关文章

  1. postgresql 分区表

    1.普通方式建立主表 create table tbl_partition( id integer, name ), gender boolean, join_date date, dept ) ) ...

  2. postgresql分区表探索(pg_pathman)

    使用场景 许多系统在在使用几年之后数据量不断膨胀,这个时候单表数据量超过2000w+,数据库的查询也越来越慢,而随着时间的推移许多历史数据的重要性可能逐渐下降.这时候就可以考虑使用分区表来将冷热数据分 ...

  3. PostgreSQL分区表实现——pg_pathman分区表管理

    该博文用于自己学习记录,内容节选自: https://github.com/digoal/blog/blob/master/201610/20161024_01.md pg_pathman 创建分区表 ...

  4. PostgreSQL分区表实现——pg_pathman安装、配置

    近日由于系统运行时间太长,数据库库表中的数据也是越来越多,为了缩短库表的操作时间,所以对数据库中的部分库表进行分区的操作. 通过研究,决定采用pg_pathman插件对库表进行分区操作.pg_path ...

  5. postgresql 分区表创建及测试

    1      建立分区 1.1.  创建主表 CREATE TABLE measurement ( city_id         int not null, logdate        date ...

  6. 【转载】PostgreSQL分区表(Table Partitioning)应用

    博客地址--点击

  7. PostgreSQL PARTITION 分区表

    PostgreSQL 分区表,操作性相当便捷. 但只能在创建时决定是否为分区表,并决定分区条件字段,普通表创建后,不能在修改为分区表. Note:通过其他方法也可转化为分区表. 和其他数据库一样,分区 ...

  8. PostgreSQL 分区索引演进

    PostgreSQL 分区表,操作性相当便捷. 但只能在创建时决定是否为分区表,并决定分区条件字段,普通表创建后,不能在修改为分区表. Note:通过其他方法也可转化为分区表. 和其他数据库一样,分区 ...

  9. Atitit s2018 s4 doc list dvchomepc dvccompc.docx .docx \s2018 s4 doc compc dtS44 \s2018 s4 doc dvcCompc dtS420 \s2018 s4f doc homepc \s2018 s4 doc compc dtS44\(5 封私信 _ 44 条消息)WebSocket 有没有可能取代 AJAX

    Atitit s2018 s4 doc list dvchomepc dvccompc.docx .docx \s2018 s4 doc compc dtS44 \s2018 s4 doc dvcCo ...

随机推荐

  1. Java缓存相关memcached、redis、guava、Spring Cache的使用

    随笔分类 - Java缓存相关 主要记录memcached.redis.guava.Spring Cache的使用 第十二章 redis-cluster搭建(redis-3.2.5) 摘要: redi ...

  2. HTTP协议响应头之Transfer-Encoding:分块传输详解

    Http Connection有两种连接方式:短连接和长连接:短连接即一次请求对应一次TCP连接的建立和销毁过程,而长连接是多个请求共用同一个连接这样可以节省大量连接建立时间提高通信效率.目前主流浏览 ...

  3. python logging 重复写日志问题

    用Python的logging模块记录日志时,遇到了重复记录日志的问题,第一条记录写一次,第二条记录写两次,第三条记录写三次...很头疼,这样记日志可不行.网上搜索到了原因与解决方案: 原因:没有移除 ...

  4. django-控制mysql事物

    from django.db import transaction 两种方式控制事务:为了保持数据一致性 一个Book表,一个Author表.添加一本书,也要保证添加作者.By事物控制 book = ...

  5. 使用http-proxy-middleware 代理跨域

    使用http-proxy-middleware 代理跨域 例如请求的url:“http://f.apiplus.cn/bj11x5.json” 1.打开config/index.js,在proxyTa ...

  6. TDataset.CopyFields

    Description Often when manipulating datasets with similar structures, you need to copy the records f ...

  7. Visual Basic 函数速查

    Calendar 常数 可在代码中的任何地方用下列常数代替实际值: 常数 值 描述 vbCalGreg 0 指出使用的是阳历. vbCalHijri 1 指出使用的是伊斯兰历法. Color 常数 可 ...

  8. Sqlserver2012的数据导入到sqlserver2008或sqlserver2008R2

    我采取的是sql语句的方式 将Sqlserver2012的表结构导出成sql语句,数据也导出成sql语句 一.点击数据库名称右键=========>属性 二.导出表结构与数据为sql语句 htt ...

  9. UIview需要知道的一些事情:setNeedsDisplay、setNeedsLayout

    UIview需要知道的一些事情:setNeedsDisplay.setNeedsLayout 1.在Mac OS中NSWindow的父类是NSResponder,而在i OS 中UIWindow 的父 ...

  10. mac 下 python链接mysql

    安装过程 :http://blog.topspeedsnail.com/archives/6018 注意 报错的话要先装一个东西 http://cdn.mysql.com/Downloads/Conn ...