PostgreSQL 索引扫描offset内核优化 - case
背景 最近写了好几篇与offset有关的文章,上一篇是解offset质变的问题。 https://yq.aliyun.com/articles/57730 这一篇要解的是offset偏移量越大,越慢的问题。 offset偏移量很大的情况下,即使走的是索引(没有使用额外的sort),也会很慢,这是为什么呢?...
背景 最近写了好几篇与offset有关的文章,上一篇是解offset质变的问题。 https://yq.aliyun.com/articles/57730 这一篇要解的是offset偏移量越大,越慢的问题。 offset偏移量很大的情况下,即使走的是索引(没有使用额外的sort),也会很慢,这是为什么呢?...
背景 ORCA 是PostgreSQL的下一代优化器,在QUERY的优化上比自带的优化器有长足的进步。 https://github.com/greenplum-db/gporca 安装ORCA cmake wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.g...
背景 很多使用数据仓库的朋友可能都有过这样的困惑,为什么数据仓库的资源经常会出现不可控,或者抢用的情况,严重的甚至影响正常的作业任务,导致不能按时输出报表或者分析结果。 这里的原因较多,最主要的原因可能还是使用姿势不对,MPP是用极资源的产品,一伙人在抢资源当然跑不好。你想想一个跑道能让多架飞机同时起飞或降落吗...
背景 offset limit是一个多么常见的需求啊,但是你知道offset的数据可能隐藏着质变吗? 如图 node有30W条数据,其中前100条是满足条件的,然后100条到20W条都是不满足条件的。 所以offset 10 limit 10非常的快。 但是offset 100 limit 10,就要...
背景 近日收到 平安科技 海安童鞋 那里反馈的一个问题,在生产环境使用PostgreSQL的过程中,遇到的一个有点”不可思议”的问题。 一张经常被更新的表,通过主键查询这张表的记录时,发现需要扫描异常多的数据块。 本文将为你详细剖析这个问题,同时给出规避的方法,以及内核改造的方法。 文中还涉及到索引的结构解...
背景 偶尔有用户会遇到远程程序连接RDS PG,在不做任何操作一段时间后可能中断。 其实可能是用户和RDS PG之间,某些网络设备设置了会话空闲超时,会主动中断会话。 那么有什么方法能解决这个问题呢? 运维的同学可能有这方面的经验,例如使用securecrt或者其他终端连接服务器时,可以设置这些管理工具的n...
背景 plperl 是PostgreSQL支持的函数语言之一。 在使用plperl时,可以使用plperl提供的钩子功能,满足一些特殊场景的需求。 钩子分2种,一种是加载plperl.so库时的钩子,一种是加载perl语言解释器时的钩子。 钩子的使用有安全问题吗? 钩子用法介绍 加载plperl.so库时...
背景 Oracle PL/SQL是非常强大的一门SQL编程语言,许多Oracle用户也使用它来处理一些要求延迟低且数据一致性或可靠性要求很高的业务逻辑。 PostgreSQL也有一门非常高级的内置SQL编程语言,plpgsql。与Oracle PL/SQL语法极其类似,但是还是有一些不一样的地方。 (PS:除...
背景 根据RFC 3330, 1700 的描述, 0.0.0.0/32 可以用作当前网络的源地址。 0.0.0.0/8 - Addresses in this block refer to source hosts on "this" network. Address 0.0.0.0/32 may be...
背景 双十一背后的技术系列文章 《聊一聊双十一背后的技术 - 分词和搜索》 每年双十一的交易额都创新高,今年也不例外,双十一几乎成了各种IT系统的大考,物流也不例外。 每次双十一快递几乎都被爆仓,但是随着技术的发展,今年,听说双十一刚过,小伙伴们的包裹差不多都收到了,今年的快递效率怎么如此之高呢? 今天,来...