博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PPAS可以安装分区表
阅读量:6767 次
发布时间:2019-06-26

本文共 2179 字,大约阅读时间需要 7 分钟。

磨砺技术珠矶,践行数据之道,追求卓越价值 

回到上一级页面:      回到顶级页面:

[作者 高健@博客园  luckyjackgao@gmail.com]

 

在PostgreSQL中,分区表是无法建立的,或者说是假的分区表。

步骤通常如下:

建立base表,建立继承base表的各个子表,为base表建立rule,建立trigger。

这样,把base表当作分区表的入口,由于insert/update时不断触发trigger,其效率还是很低下的。

可以参见

查询的时候,optimizer 到达子表是没有问题的。

Currently we allow the user to create arbitrary nested tables with arbitrary constraints and then the planner tries to detect at run-time which child tables are candidates for the query. See PostgreSQL Partitioning for details.

也可以参考:

http://blog.csdn.net/beiigang/article/details/9056263

在PPAS9.0里,建立分区表仍然是一个比较痛苦的工作。

但是PPAS9.1和PPAS9.2里面,带有直接建立分区表的功能,使用起来更方便了:

例如:

edb=# drop table employees cascade;DROP TABLEedb=# edb=# create table employeesedb-# ( empno integer,edb(#   ename varchar(10),edb(#   job varchar(9),edb(# PRIMARY KEY (empno)edb(# )edb-# partition by list (job)edb-# ( partition emp_mgmt values ('manager'),edb(#   partition emp_sales values ('salesman'),edb(#   partition emp_ops values ('clerk')edb(# );CREATE TABLEedb=# \dt                             schema     |           name            |  type    |    owner    --------------+---------------------------+----------+-------------- enterprisedb | employees                 | テーブル   | enterprisedb enterprisedb | employees_emp_mgmt        | テーブル   | enterprisedb enterprisedb | employees_emp_ops         | テーブル   | enterprisedb enterprisedb | employees_emp_sales       | テーブル   | enterprisedb ...(21 rows)edb=#

再看index的状态,那是非常有趣的。

 

edb=# \di                                           schema     |           name           | type      |    owner     |         table         --------------+--------------------------+----- -----+--------------+-------------------------- enterprisedb | employees_emp_mgmt_pkey  | index     | enterprisedb | employees_emp_mgmt enterprisedb | employees_emp_ops_pkey   | index     | enterprisedb | employees_emp_ops enterprisedb | employees_emp_sales_pkey | index     | enterprisedb | employees_emp_sales enterprisedb | employees_pkey           | index     | enterprisedb | employees ...(18 rowa)edb=#

 

而如果在postgresql里建立分区表,涉及到index就很麻烦了:postgresql不支持跨越表的索引。

 

[作者 高健@博客园  luckyjackgao@gmail.com]

回到上一级页面:      回到顶级页面: 

磨砺技术珠矶,践行数据之道,追求卓越价值  

你可能感兴趣的文章
iOS中cell自适应高度
查看>>
蒲京博士为第七届环海南岛国际大帆船赛创造历史
查看>>
记一次负载均衡+NFS博客站点搭建的总结
查看>>
我不再像两年前那样勇敢
查看>>
计算机linux系统 第一课
查看>>
8月27日科技联播:滴滴5000亿上市计划或受影响,高德地图暂时下线顺风车业务...
查看>>
网站漏洞修复对phpmyadmin防止被入侵提权的解决办法
查看>>
Exchange 2013服务器常用的性能监视器
查看>>
详解linux运维工程师入门级必备技能
查看>>
ElsticStake安装之Logstash6.4.0 安装(二)
查看>>
XenServer安装最佳实践
查看>>
电动汽车锂电池容量选择
查看>>
mongodb的基本语法
查看>>
网络基础
查看>>
产品入库与倒冲领料不匹配查询
查看>>
配置percona XtraDB Cluster
查看>>
mysql+php+pdo批量添加大数据
查看>>
Systemstate Dump分析经典案例(上)
查看>>
在中国,有多少程序员干到40了?那么其他人去干什么了?
查看>>
嵌入式培训大纲 看看具体的课程学习内容有哪些
查看>>