PostgreSQL 批量导入性能 (采用dblink 异步调用)
背景 批量导入数据,怎样能挖掘出系统的比较极限的潜能? 瓶颈通常在哪里? 1、WAL lock 2、INDEX lock 3、EXTEND LOCK 4、autovacuum 干扰 因此最好的方法就是排除以上问题,例如 1、使用多表,解决单表EXTEND LOCK问题 2、使用unlogged t...
背景 批量导入数据,怎样能挖掘出系统的比较极限的潜能? 瓶颈通常在哪里? 1、WAL lock 2、INDEX lock 3、EXTEND LOCK 4、autovacuum 干扰 因此最好的方法就是排除以上问题,例如 1、使用多表,解决单表EXTEND LOCK问题 2、使用unlogged t...
背景 某些时候,可能想避免一些索引的影响,特意让优化器不选择使用某些索引。 通常的做法可能有: 1、HINT 《关键时刻HINT出彩 - PG优化器的参数优化、执行计划固化CASE》 《PostgreSQL SQL HINT的使用(pg_hint_plan)》 2、设置开关,(注意它不能只影响某一个索引...
背景 《阿里云RDS PostgreSQL OSS 外部表实践 - (dblink异步调用封装并行) 数据并行导出到OSS》 本文为从OSS并行导入数据到数据库中。 请先阅读: RDS PG OSS 外部表文档1 RDS PG OSS 外部表文档2 原文 https://www.atatech.org/...
背景 去O很大程度上是国家层面的战略考虑,比如斯诺登事件,最近贸易战的“中兴”事件,使得去O成为一个不可不做的事情。 但是去O喊了若干年,并没有真正意义上成为轻松愉快的全民运动,比较大的原因可能是 1、去O的成本 2、去O后的责任方 3、利益 随着云计算的兴起,第2,3点应该可以得到很好的解决(有问题找...
背景 PostgreSQL支持在线创建索引(CREATE INDEX CONCURRENTLY),不堵塞其他会话对被创建索引表的DML(INSERT,UPDATE,DELETE)操作。特别适合于在线业务。 注意,传统的创建索引的方法,会堵塞其他会话的DML。 那么CREATE INDEX CONCURRENT...
背景 任意字段组合查询的几种优化方法: 1、列存 2、RUM 3、GIN 4、多个INDEX的BITMAP AND OR SCAN 5、BLOOM FILTER 《PostgreSQL 实践 - 广告位推荐 1》 采用了RUM的方法,采用r...
背景 GPDB支持行存列存,而且相关的选择原理我们之前的文章也有很详细的分析,同时在性能方面也做过较多的评测对比。 但是在大宽表上,相差到底有多悬殊我们之前没有对其进行过对比。主要的差异来自deform和QUERY扫描的存储空间(理论上,数据量越大,同时访问的列越少,列存的优势越明显。或者是访问到的列越靠后,优...
背景 PostgreSQL 10开始支持了分区表的语法,可以通过新的语法创建分区表,而更早的版本则需要使用inherit+check约束+rule/trigger来创建分区表。 《分区表锁粒度差异 - pg_pathman VS native partition table》 《PostgreSQL 传统 h...
背景 Oracle,当需要在字符串中包含单引号时,我们需要输入一对单引号。 例如 SQL> select 'Hello, I''m digoal.' from dual; 'HELLO,I''MDIGOAL. ------------------ Hello, I'm digoal. ...
背景 原文 http://www.ibloger.net/article/230.html 1 说明 1.1 RECORD 定义记录数据类型。它类似于c语言中的结构数据类型(structure),pl/sql提供了将几个相关的、分离的、基本数据类型的变量组成一个整体的方法,即record复合数据类型。在使用...