Greenplum 计算能力估算 - 暨多大表需要分区,单个分区多大适宜
背景 在数据仓库业务中,单表的数据量通常是非常巨大的。Greenplum在这方面做了很多的优化 1、支持列存储 2、支持向量计算 3、支持分区表 4、支持btree, bitmap, gist索引接口 5、执行并行计算 6、支持HASH JOIN 等 提高数据筛选的效率是一个较为低廉有效的优化手...
背景 在数据仓库业务中,单表的数据量通常是非常巨大的。Greenplum在这方面做了很多的优化 1、支持列存储 2、支持向量计算 3、支持分区表 4、支持btree, bitmap, gist索引接口 5、执行并行计算 6、支持HASH JOIN 等 提高数据筛选的效率是一个较为低廉有效的优化手...
背景 PostgreSQL物理流复制有几个特点 1、延迟及低,毫不畏惧大事务 2、支持断点续传 3、支持多副本 4、配置简单,看本文 5、备库与主库物理完全一致,并支持只读 所以大多数用户都会使用流复制来搭建只读备库,容灾,备份节点,HA等。 本文主要介绍一下PostgreSQL一主多从的配置,以及...
背景 对于高并发的小事务,使用绑定变量(prepared statement)来缓存执行计划,可以降低简单SQL在sql parser, plan上的开销。 《PostgreSQL 11 preview - 强制auto prepared statment开关(自动化plan cache)(类似Oracle c...
背景 通常一个QUERY在执行时分为几个步骤,语义解析、SQL REWRITE、生成所有可选执行路径、选择最优路径、执行等多个步骤。 对于同一类SQL,只是更换SQL中的一些FILTER变量时,实际上很多步骤是可以共享的。例如语义解析、SQL REWRITE、生成执行计划都是可共享的,这些步骤通常比较耗CPU资...
背景 pg_stat_statements是PG的一个用于收集SQL统计信息的插件,可以帮助我们分析TOP SQL。 《PostgreSQL 如何查找TOP SQL (例如IO消耗最高的SQL)》 另一方面,我们可能也想知道SQL曾经执行时是否出现过较差的执行计划,使用较差的执行计划执行了多少次等信息。 通...
背景 目前pgbench最大可以测试1000个连接,显然在某些时候是不够的,我们可能需要建立更多的连接进行测试。 $ pgbench -j 3000 -c 1500 invalid number of clients: "1500" 使用这里提到的方法修改一下pgbench,让它能够建立100万个连...
背景 当内存很大时,除了刷脏页的调度可能需要优化,还有一方面是虚拟内存与物理内存映射表相关的部分需要优化。 1 脏页调度优化 1、主要包括,调整后台进程刷脏页的阈值、唤醒间隔、以及老化阈值。(脏页大于多少时开始刷、多久探测一次有多少脏页、刷时多老的脏页刷出。)。 vm.dirty_background_by...
背景 原文 https://wenku.baidu.com/view/8a932511866fb84ae45c8de8.html 正文 Linux进程状态解析之R、S、D、T、Z、XLinux进程状态解析之R、S、D、T、Z、X。 Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会...
背景 BRIN索引是PG的一种块索引接口,存储指定连续数据块内被索引字段的元数据。 https://www.postgresql.org/docs/devel/static/brin.html 目前BRIN存储的元数据包括被索引字段在每个指定连续数据块区间的MIN,MAX值。所以对于比较分散的数据实际上效果是...
背景 当我们需要对数据进行排序时,通常加速的方法是建索引,走索引就快了对吧。 PostgreSQL排序的能力还是很强大的: 《PostgreSQL 11 preview - 并行排序、并行索引 (性能线性暴增) 单实例100亿TOP-K仅40秒》 通常情况下,如果要让排序用上索引,那么索引必须与排序字段一致...